現在、「ペイロード」プログラムの数千のインスタンスを実行し、出力の後処理を行うドライバー プログラムがあります。shell()
ドライバーは現在、関数を使用して、複数のスレッドからペイロード プログラムを直接呼び出します。このshell()
関数は、現在の作業ディレクトリでコマンドを実行し、コマンドの実行が完了するまでブロックし、コマンドによって stdout に送信されたデータを返します。これは、単一のマルチコア マシンでうまく機能します。qsub
並列処理を増やすために、ドライバーを変更して、代わりに大規模な計算クラスターにジョブを送信したいと考えています。
qsub
コマンドの結果をファイルではなく stdout に出力し、ジョブが完了するまでブロックする方法はありますか? 基本的に、コマンドの「通常の」実行と同じように動作するようにして、ドライバー プログラムをできるだけ変更せずにクラスターに並列化できるようにします。
編集: すべてのグリッド エンジンはほぼ標準化されていると思いました。そうでなくても問題ない場合は、Torque を使用しています。