SunグリッドエンジンでQSUBで送信されたプロセスから出口コードを取得する

StackOverflow https://stackoverflow.com/questions/3091156

質問

Sun Grid Engine(今:Oracle Grid Engine?)でQSUBを介してジョブを提出したいと思います。 -Sync YesオプションまたはQRSHを使用したくありません。なぜなら、私の制御プログラムをシングルスレッドにし、一度に多くのジョブを立ち上げることができるからです。これらのオプションは、私の制御プログラムのスレッドをブロックします。

ただし、起動するプロセスの出口ステータスを受け取りたいと思います。マンページから、スレッドをブロックせずにこのコードを取得する方法はないようです。出口コードをSTDOUTに印刷するために起動しているジョブを変更する以外に、このステータスを取得する方法はありますか?

役に立ちましたか?

解決

答えは「qacct -j」です。ジョブの歴史の概要はstdoutに印刷されます。これは、出口ステータス、開始時間と終了時間、およびその他のさまざまな情報のために解析できます。

ただし、このコマンドが機能するには、SGEを適切に構成する必要があります。

他のヒント

アプリケーション内でジョブを送信している場合、最も単純で最速(QSUBで送信するよりも速い)方法(および後で終了ステータスを取得する)は、DRMAA APIを使用しています。この簡単なAPIは、CおよびJava in Sunグリッドエンジンで非常に長い間利用できます。 Univaグリッドエンジン(グリッドエンジンの商用後継者)とサングリッドエンジンフォークも必要なライブラリを出荷します。これはオープンな標準であるため、プログラムを変更せずに、Condor/Slurmなどの完全に他のDRMにも提出できます。 Go、Python、またはTCL(およびその他)の言語バインディングが利用可能です。

見る:http://www.gridengine.eu/mangridengine/htmlman3/drmaa_wait.html

いくつかの情報とGO(#Golang)Drmaa言語の拘束は、ここで見つけることができます:http://www.gridengine.eu/programming-apis

乾杯

ダニエル

www.gridengine.eu

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top