Abrufen des Beendigungscodes von einem Prozess, der mit "sun" in Sun Grid Engine übergeben wurde

8

Ich möchte Jobs über QSub auf Sun Grid Engine (jetzt: Oracle Grid Engine?) einreichen. Ich möchte die Option -sync yes oder qrsh nicht verwenden, weil mein Steuerungsprogramm single-threaded sein und viele Jobs gleichzeitig starten soll. Diese Optionen würden den Thread meines Steuerungsprogramms blockieren.

Ich möchte jedoch die Exit-Status der von mir gestarteten Prozesse erhalten. Von den man-Seiten scheint es keine Möglichkeit zu geben, diesen Code zu erhalten, ohne meinen Thread zu blockieren. Kann ich die Jobs, die ich starte, um ihre Exit-Codes auf stdout zu drucken, nicht ändern? Gibt es eine Möglichkeit, diesen Status zu erhalten?

    
Brian 22.06.2010, 07:37
quelle

2 Antworten

11

Die Antwort ist 'qacct -j'. Eine Zusammenfassung des Verlaufs des Jobs wird auf stdout gedruckt, die dann für den Beendigungsstatus, Start- und Endzeiten und eine Vielzahl anderer Informationen analysiert werden kann.

SGE muss jedoch richtig konfiguriert sein, damit dieser Befehl funktioniert.

    
Brian 22.06.2010, 23:12
quelle
2

Wenn Sie Ihre Jobs innerhalb Ihrer Anwendung einreichen, wird die DRMAA-API am einfachsten und schnellsten (schneller als mit dem Subskribieren mit qsub) (und der Exit-Status später) verwendet. Diese einfache API ist in Sun Sun Grid Engine sehr lange in C und in Java verfügbar. Univa Grid Engine (kommerzieller Nachfolger von Grid Engine) und Sun Grid Engine liefern ebenfalls die benötigte Bibliothek. Da es sich um einen offenen Standard handelt, können Sie auch komplett andere DRMS ​​wie Condor / SLURM etc. einreichen, ohne Ihr Programm zu ändern. Sprachbindungen für GO, Python oder TCL (und andere) sind verfügbar.

Siehe: Ссылка

Weitere Informationen und die Go (#golang) DRMAA Sprachbindung mit Beispielen können Sie finden Sie hier: Ссылка

Prost

Daniel

www.gridengine.eu

    
Daniel 28.12.2012 12:30
quelle