Frage

Weiß jemand, eine Java-Implementierung des DRMAA-API, der Arbeit mit PBS / Torque-Cluster-Software bekannt ist?

Der Hintergrund dahinter: Ich mag würde Aufträge an einen neu eingerichteten Linux-Cluster von Java unter Verwendung eines DRMAA konformes API einzureichen. Der Cluster wird von PBS / Torque . Drehmoment enthält PBS DRMAA 1,0-Bibliothek für Drehmoment- / PBS, die eine DRMA-C-Bindung enthält, und stellt in libdrmaa.so und .a Binärdateien. Ich weiß, dass Sun Grid Engine eine drmaa.jar enthält eine Java-DRMAA API bereitstellt. In der Tat entschied ich mich SGE zu verwenden, aber es wurde beschlossen, PBS zuerst zu versuchen.

Die Theorie hinter dieser Entscheidung war:
‚DRMAA ist ein Standard und damit ein Java-API benötigt nur ein standardkonforme drmaa-c zu binden.‘ Allerdings konnte ich nicht so ‚allgemeinen DRMAA-C-Java-API‘ und jetzt davon ausgehen, dass diese Annahme falsch ist und dass die Java-Bibliotheken sind motorspezifisch.

Edit: Ich habe gerade mit dem drmaa.jar von Sun Grid Engine-Paket und versucht zu Quer Verwendung mit dem pbs experimentiert libdrmaa.so. Es überrascht nicht, dass fehlgeschlagen (JNI unbefriedigt Verbindungsfehler).

Fazit: Es funktioniert nicht so! Nach einiger Suche sehe ich nur diese wenigen Optionen:

  1. Installieren GridWay ontop von Globus Toolkit. Installierte ontop PBS, GridWay behauptet DRMAA bereitzustellen, in Java. Sieht aus viel zu komplex für meine Einstellung.
  2. Schrott DRMAA unterbreitet PBS durch Aufruf Systembefehl qsub, qstat, etc. von Java. Einfach, aber nicht so nett.
  3. Implementieren eines drmaa mich verbindlich. Viel zu komplex ...

  4. Zur Grid Engine. GE in meinem Meinung überlegen ist über PBS in Bezug auf Sprachbindungen.

Ich neige dazu, Option 2. oder 4. Empfehlungen an bevorzugen?

War es hilfreich?

Lösung

Nach etwas mehr Benutzer es sieht aus wie ich selbst etwas zu schreiben. Es scheint noch nicht optimal Antwort zu sein, aber es kann als Warnung für diejenigen dienen dem gleichen Versuch.

Der beste Ort, um diese Fragen zu stellen, ist möglicherweise die Torque-Mailingliste: www.clusterresources.com/resources/mailing-lists.php

Zunächst einmal ist der Grund, warum Sie nicht nur jede DRMAA-Java-Bibliothek verwenden können, und verwenden Sie es mit jeder DRMAA-C-Implementierung ist: DRMAA beschreibt die Schnittstelle der Ressourcensteuerung, nicht, wie es umgesetzt wird. Der Verkäufer könnte eine DRMAA-C-Implementierung verwenden und nur diese Funktionen nutzen, aber sie müssen nicht. Es kann verwendet werden, was im Motor vorhanden ist. So eine wichtige Botschaft ist:., Wenn Sie bestimmte Sprachbindungen benötigen, stellen Sie sicher sind sie für alle Sprachen es erforderlich

Im Hinblick auf die genannten Optionen:

  1. Mit GridWay / Globus Toolkit: http: //www.gridway. org / doku.php? id = starten Vorteil: GridWay ist ein Meta-Scheduler, dass unterstützt viele Ressourcen-Management-Systeme (SGE, PBS, ...). Möglicherweise ist die einzige Möglichkeit, eine DRMAA Schnittstelle zur Arbeit mit PBS im Moment zu bekommen. Nachteil: Es scheint wie eine Inflation von Schichten und Komplexität. Haben Sie keine Erfahrung damit.

  2. Mit Systembefehle, qsub, qstat, qdel. Vorteil: schneller Hack Nachteile: dirty Hack, implementieren müssen Parser für die Ausgabe, vielleicht nicht bemerkt, wenn etwas schief geht, laufen um Nachrichten von stdin / stdout / stderr, nicht tragbar

  3. Mit JNI sollte es möglich sein, eine Bindung für jede c-Funktion in drmaa.c erstellen Vorteil: würde eine vollständige drmaa Implementierung (hoffentlich) Disadvanteges: beinhaltet kompilierten Code, viele manuelle Verpackung von C-Funktionen

  4. (vielleicht kann dies automatisiert werden)
  5. Wechseln Sie zu einem anderen Raster-Engine. Möglicherweise sollten wir diese Analyse getan haben, vor. Wir haben jedoch bereits eine andere Drehmoment Cluster, und es ist die Erfahrung mit diesem. zwei Betrieb schaffen würde heterogene Infrastruktur.

  6. Ändern eine existierende drmaa Bibliothek von einem anderen Hersteller. Keine Ahnung, ob das machbar ist ... Wir werden auch in diesem Blick.

Andere Tipps

Ich hatte auch dieses Problem. Dies ist ein Projekt einer objektorientierten C ++ und Java DRMAA Bindung für PBS / Drehmoment zu erzeugen.

Der Nachteil ist, dass Sie die Bibliothek aus dem C ++ Code erstellt in der Lage sein müssen, um zu laden, so dass es nicht eine „reine Java“ Implementierung ist, die nur als .jar-Datei verteilt werden kann, die Endanwender erwarten "zu schaffen, libdrmaa.so“selbst.

Für das, was es wert ist, hier ist es: https://github.com/bryan-lunt/PBSJavaDRMAA/

Haben Sie jemals entscheiden, was damit zu tun? Haben Sie es geschafft Java DRMAA Bindungen arbeiten mit Torque / PBS zu bekommen? Ich suche einig Java DRMAA Code arbeitet an einem Torque / PBS-System zu erhalten, und wenn man die harte Arbeit bereits getan hat, würde ich lieben, es zu stehlen.

Wenn Sie jedoch nicht haben, sollte es nicht so schlimm sein, einige Java-Bindungen zu machen, und ich werde es tun, wenn niemand anderes tut. Vor einigen Jahren ich erfolgreich die DRMAA Java-Bindings für SGE an der Arbeit mit einer neuen DRMAA Implementierung für Xgrid (jetzt abgestanden, aber vielleicht bald wiederbelebt wird) geändert.

Ich schrieb sogar eine kurze Blog-Post auf meinen Erfahrungen (enthält einen Link auf dem allgemeinen Informationen):

http://edbaskerville.com/2006/07/11/ java-Bindungen arbeit /

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top