1

プログラムをクラスターで使用しようとしています。ここで、小さなジョブを作成し、bash スクリプトを使用して特定のノードに送信します。これらのジョブは大きなファイルをノードにコピーし、このファイルで他の 5 つのプログラムを実行し、最終的にジョブはファイルをコピーしてノード上で削除します。

ジョブを送信するこの bash スクリプトは、特定のディレクトリで空き HDD の量をチェックし、このノードで実行できるジョブの最大数を計算し、この数のジョブをこの特定のノードに送信します。この方法の欠点は、すべてのジョブが終了した後で、この bash スクリプトを複数回実行する必要があることです。

今、drmaa api を使用して python でこれを実行したいと考えています。しかし、このAPIでノードを制御できるかどうか疑問に思っています。drmaa API を使用して特定のノードに送信することはできますか?

または、qsub コマンドを実行し、qstat コマンドの出力を解析してノードあたりのジョブ数を取得するには、Popen で回避策を作成する必要がありますか?

4

1 に答える 1

2

私は Python の drmaa API に詳しくありませんが、制限を指定する方法が提供されている場合は、制限を使用して、ジョブが実行されるホストを制限できます。おそらく、nativeSpecification のようなものを使用して渡すの-l hostname=whateverでしょうか?

http://www.gridengine.eu/programming-apisを参照してください

DRMAA 標準で定義されていないジョブ送信パラメーターの設定は簡単です。DRMAA 標準化されたネイティブ仕様を使用して設定できます。これは Go the SetNativeSpecification() ジョブ テンプレート メソッドにあります。

于 2013-09-15T19:50:59.910 に答える