問題タブ [sbatch]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - SLURM と makefile で sbatch を使用するにはどうすればよいですか?
バッチ ジョブを SLURM に送信しようとしていますが、取得し続けJobState=FAILED Reason=NonZeroExitCode
ます。通常の g++ でコードをコンパイルして実行することはできますが、学校の課題には SLURM を使用する必要があります。私はそれらを適切に実行していると思っていましたが、ルートから厄介なグラムを受け取り、ログインノードでのスクリプトの実行を中止するように指示しました. どんな助けでも大歓迎です。ここに私のバッチファイルと私の Makefile があります:
メイクファイル:
parallel-processing - slurm が要求されたよりも多くのタスクを起動しているようです
SLURM がsbatch
スクリプトからジョブを起動する方法がわかりません。SLURM が--ntasks
引数を無視しsrun
て、バッチ ファイル内のすべてのタスクをすぐに起動しているようです。StackOverflowのこの回答のコードを少し変更した例を次に示します。
したがって、私のセットアップでは、srun echo
コマンドはすぐに実行されますが、コマンドの終了後に実行されると予想されますsrun sleep 10
。
私は SLURM 2.6.5 を使用して、8 コアの個人用ワークステーションでジョブのスケジュールと送信を行っています。自分でインストールしたため、構成が壊れている可能性は十分にあります。slurm.conf ファイルの関連部分を次に示します。
printenv | grep SLURM
実行後の出力は次のとおりですsalloc --ntasks=1
コメントや提案をいただければ幸いです。さらに情報が必要な場合はお知らせください。
読んでくれてありがとう、
トム
もう少し遊んだら更新
私はある程度の進歩を遂げましたが、まだ私が望む動作を完全には得ていません。
使用すると、ステップを待機--exclusive
するステップを取得できます。echo
sleep
と
しかし、各ステップが複数のプロセッサを必要とする複数ステップのジョブを実行している場合、これを適切に行う方法はまだわかりません。
12個stress
のプロセスを提供します。
sbatch
では、スクリプトで 6 つのプロセッサを使用し、それぞれ 2 つのプロセッサで一度に 3 つのステップを開始するにはどうすればよいでしょうか? 使い方は正しいsrun --exclusive -n 1 -c 2 stress -c 2
ですか?
linux - sbatch SLURM を使用しているときに NonZeroExitCode を取得し続けるのはなぜですか?
次のコマンドで実行している単純な test.ksh があります。
スバッチ test.ksh
「JobState=FAILED Reason=NonZeroExitCode」を取得し続けます (「scontrol show job」を使用)
私はすでに次のことを確認しています。
- slurmd と slurmctld が正常に稼働している
- 「test.ksh」のユーザー権限は777です。
- コマンド "srun test.ksh" (sbatch を使用せずに単独で)は問題なく成功します。
- 「test.ksh」の最後の行に「return 0」を入れてみましたが、うまくいきませんでした
- 「test.ksh」の最後の行に「exit 0」を入れてみましたが運が悪かったです
- 「test.ksh」の最後の行に「ホスト名」を入れてみましたが、うまくいきませんでした
- 「test.ksh」の最後の行に「srun hostname」を入れてみたがうまくいかなかった
hpc - 指定されたノード数で slurm 配列ジョブを開始する
slurm バージョン 14.03.0 を使用して、HPC で 168 個のシーケンス ファイルを整列させようとしています。他の人のためにいくつかのノードを開いたままにしておくために、一度に最大 9 つの計算ノードを使用することしか許可されていません。
ファイル名を変更して、配列関数を sbatch で使用できるようにしました。シーケンス ファイルは次のようになります: Sequence1.fastq.gz、Sequence2.fastq.gz、… Sequence168.fastq.gz
一度に 9 個の 168 個のファイルすべてを実行するように指示する方法がわかりません。168 個のファイルすべてを実行するようにできますが、使用可能なすべてのノードを使用するため、数日間実行されるため、問題が発生します。
「--array=1-168%9」を使用して一度に実行する数を指定できる場所を見つけましたが、これはクラスターにあるよりも新しいバージョンの slurm で実装されました。この機能を取得する別の方法はありますか? 私は物事を試し、数週間髪を抜いてきました.
私が実行しようとしている方法は次のとおりです。
ありがとう!マット
parallel-processing - 1 つのノードでプログラムを強力にスケーリングし、2 つのノードを使用してランタイムを大幅に増加
結果は、プロセッサの数を 2 から 4、10 に増やすたびにランタイムが減少することを示していますが、プロセッサが 20 になるとランタイムが大幅に増加します。各ノードには 2 つの 8 コア プロセッサがあるため、各ノードを 16 mpi プロセスに制限したいと考えています。私はこれを正しくやっていますか?問題は私のスバッチファイルに関係していると思います。特に、使用するノードが 1 つから 2 つになると、ランタイムが大幅に増加するためです。ここに私のスバッチファイルがあります:
slurm - SLURM スバッチ出力バッファリング
いくつかの slurm スクリプトを作成し、sbatch で実行しようとしました。ただし、出力ファイルは頻繁に更新されるわけではありません (おそらく 1 分に 1 回)。
sbatch で出力バッファリングのレイテンシを変更する方法はありますか? そのような状況で stdbuf が使用されることは知っていますが、sbatch では機能しませんでした。