Question

Quelqu'un sait-il une implémentation Java de l'DRMAA-API qui est connu pour fonctionner avec le logiciel de cluster PBS / couple?

Le fond derrière ceci: Je voudrais soumettre des travaux à un cluster Linux nouvellement mis en place à partir de Java en utilisant une API compatible DRMAA. Le cluster est géré par PBS / Couple . Couple comprend bibliothèque PBS DRMAA 1,0 pour couple / PBS qui contient une liaison C-DRMA et fournit en libdrmaa.so et .a binaires. Je sais que le moteur de Sun Grid comprend un drmaa.jar fournissant une API Java DRMAA. En fait, je choisi d'utiliser, mais il a été SGE décidé d'essayer d'abord PBS.

La théorie derrière cette décision était la suivante:
'DRMAA est une norme et donc une API Java a besoin seulement des normes drmaa-c liant conforme.' Cependant, je ne pouvais pas trouver un tel « API DRMAA-C-java général » et supposons maintenant que cette hypothèse est fausse et que les bibliothèques Java sont spécifiques du moteur.

Edit: Je viens avec le drmaa.jar expérimenté du package moteur de grille solaire et a essayé de l'utilisation croisée avec le pbs libdrmaa.so. Sans surprise, qui a échoué (erreur de liaison non satisfaite JNI).

Conclusion: Il ne fonctionne pas de cette façon! Après quelques recherches, je ne vois que ces quelques options:

  1. Installer Gridway ontop Globus boîte à outils. Installé ontop de PBS, Gridway prétend offrir au DRMAA Java. Regards beaucoup trop complexes pour mon réglage.
  2. Scrap DRMAA, soumettre à PBS par appelant la commande système qsub, qstat, etc. de Java. Simple mais pas agréable.
  3. Mettre en œuvre un drmaa me lier. Trop complexe ...

  4. Passez à Grid Engine. GE dans mon opinion est supérieure sur PBS en ce qui concerne les liaisons linguistiques.

J'ai tendance à préférer l'option 2. ou 4. Les recommandations?

Était-ce utile?

La solution

Après un peu plus de recherche, il semble que je dois écrire quelque chose moi-même. Il semble y avoir réponse pas optimale encore, mais il peut servir d'avertissement pour ceux qui tentent la même chose.

Le meilleur endroit pour poser ces questions est peut-être la liste de diffusion du couple: www.clusterresources.com/resources/mailing-lists.php

Tout d'abord, la raison pour laquelle vous ne pouvez pas utiliser une bibliothèque DRMAA Java et l'utiliser avec une mise en œuvre DRMAA-C est: DRMAA décrit l'interface du contrôle des ressources, et non pas la façon dont il est mis en œuvre. Le vendeur pourrait utiliser une implémentation DRMAA-C et utiliser uniquement ces fonctions, mais ils n'ont pas. Il peut utiliser ce qui est là dans le moteur. Donc, un message important est:. Si vous avez besoin de certaines liaisons linguistiques, assurez-vous qu'ils sont là pour toutes les langues requises

En ce qui concerne les options mentionnées:

  1. Utilisation Gridway / Globus Toolkit: http: //www.gridway. org / doku.php? id = commencer Avantage: Gridway est un planificateur de méta qui prend en charge de nombreux systèmes de gestion des ressources (SGE, PBS, ...). Peut-être, la seule façon d'obtenir une interface DRMAA à travailler avec PBS au moment. Inconvénient: Il semble comme une inflation des couches et de la complexité. Avoir aucune expérience avec cela.

  2. Utilisation des commandes du système, qsub, qstat, qdel. Avantage: hack Inconvénients: bidouille, nécessité de mettre en œuvre parseurs pour la sortie, peut-être pas un avis si quelque chose va mal, passer autour des messages de stdin / stdout / stderr, pas portable

  3. En utilisant JNI, il devrait être possible de créer une liaison pour chaque c-fonction drmaa.c Avantage: fournirait une mise en œuvre complète drmaa (je l'espère) Disadvanteges: code compilé implique, beaucoup d'emballage manuel de C-fonctions (peut-être cela peut être automatisé)

  4. Passer à un autre moteur de la grille. Peut-être, nous aurions dû faire cette analyse avant. Cependant, nous avons déjà un autre groupe de couple, et c'est l'expérience. L'exploitation de deux créerait une infrastructure plus hétérogène.

  5. Modification d'une bibliothèque existante drmaa d'un autre fournisseur. Aucune idée si cela est possible ... Nous examinerons aussi.

Autres conseils

J'ai eu aussi ce problème. Ceci est un projet de création d'un objet orienté C ++ et Java DRMAA liaison pour PBS / couple.

L'inconvénient est que vous devez être en mesure de charger la bibliothèque créée à partir du code C ++, il est donc pas une implémentation « pure Java » qui peut être distribué uniquement en tant que fichier .jar, attendant l'utilisateur final de fournir " libdrmaa.so » eux-mêmes.

Pour ce que ça vaut la peine, la voici: https://github.com/bryan-lunt/PBSJavaDRMAA/

Avez-vous décidé jamais quoi faire avec cela? Avez-vous réussi à obtenir des liaisons Java DRMAA travaillant avec couple / PBS? Je cherche à obtenir un code Java DRMAA travailler sur un système de couple / PBS, et si vous avez fait le travail déjà, j'aimerais le voler.

Cependant, si vous avez pas, il ne devrait pas être trop mauvais pour faire des liaisons Java, et je vais le faire si personne d'autre ne. Il y a j'ai modifié avec succès plusieurs années, les liaisons DRMAA Java pour SGE à travailler avec une nouvelle mise en œuvre de DRMAA pour Xgrid (maintenant périmé, mais peut-être bientôt être relancée).

J'ai même écrit un bref billet de blog sur mes expériences (comprend un lien vers des instructions générales):

http://edbaskerville.com/2006/07/11/ les liaisons de java-travaillant /

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top