2011-07-25 5 views
0

HPCタスクは成功するか失敗するかは、スケジューラに "後で試してください"と通信するにはどうしたらいいですか?このタスクが別のタスクを待っているので、何かが壊れている(あきらめている)か、もう一度やり直すかどうかを判断する方法が必要です(エラーが発生するか、正常に完了するまで試しています)リソースが利用可能になるまでHPCタスクを再試行し続ける(Windows HPC Server 2008 R2 SP3)

HPC APIなどを使用してこれを達成する方法?私が聞いたことは、ゼロ以外のものは失敗であり、ゼロは成功であるということです。それは確かに、この "後で試してみる"行動を達成する良い方法でなければなりません。私たちは、最初のタスクが他のタスクを実行しているように、その中でそれらの間の複雑なinterdepencencesを持つ単一のジョブでHPCのタスクの数を実行しようとしている

背景

が座ると、処理として最初のタスクまで待ちます十分なデータがあるので、それらを開始することができます(カスケード実行のようなものですが、簡単な順序ではないので、HPCの依存関係を定義することはできません)。

最初は、メインタスクが彼らが興味のあるタスクを完了するのを待っている間、スリープできるように、複数のコアにわたって複数のタスクを共有しようとしていました。今やHPC(設計による)は、one task per coreしか許されていないので、8台のマシンがある場合は、8つのタスクを一度に実行することができます。

解決策は、複数のプロセスを起動するためにバッチファイルなどを使用するように見えますが、そのパスを下る前に、上記の質問が実行可能かどうかを知りたいと思います。

答えて

0
  1. 残念ながら、タスクがスケジューラに再試行されるような方法で失敗する方法はありません。
  2. 疑わしいので、実行するすべてのプロセスを開始するバッチファイルまたはpowershellスクリプトを各タスクに実行させることをお勧めします。
  3. SP2のHPCスケジューラでコアオーバーサブスクリプション(コアあたり2つ以上のタスク)が可能になりました。これは問題の解決にも適用される可能性があります。設定方法については、こちらを参照してください。Oversubscribe core counts on cluster nodes
関連する問題