ログインしたノードでslurmジョブを実行する

ログインしたノードでslurmジョブを実行する

ログインしたクラスタノードでslurmジョブを実行できますか?ノードにログインしたとします。

casade01
casade02
casade03

こうすれば行を立てる必要がありません。重要な場合は、特定のノード(たとえば)にSSHを介して接続できますssh user@casacde01。その後、「head」ノードとして指定したノードにログインし、「OK、このコードをcasacde02とcasacde03で実行しますか?」と言うことができます。

私が探していますこのスタック交換ポスト-wsbatchフラグを提供します。しかし、sbatchや他のものが必要ですか?

単一ノードにログインして何かを実行すると、そのノードでのみ実行されるため、slurmを呼び出して現在ログインしているすべてのノードで実行するように並列プログラムをスケジュールする必要があります。

答え1

あなたが何をしたいのか完全にはわかりませんが、いくつかの仮定をして答えを探してみましょう。 「コードのデバッグおよび/またはインタラクティブな実行」に関するご意見を、あなたがやろうとしていることの基礎にします(質問に追加することもできます)。

ジョブの初期割り当てのためにキューで待機し、ジョブの開始後に対話式にデバッグできる場合は、SLURMコマンドを使用してこれを実行できます。

たとえば、コードをデバッグするために3つのノードが必要な場合は、slurmコマンドを使用できます。このコマンドsalloc -N 3は(構成に応じて)そのノードの1つに3つのノードを割り当てることもできます(やはりslurm構成に従って)。その後、srunを使用してパラレルコードを実行できます。デバッグが完了するまで(または時間が経過するまで)、srunコマンドを実行し続けることができます。

3つの特定のノードが必要であると仮定すると、同じsallocコマンドを使用しますが、--nodelist=casade01,casade02,casade03コマンドに追加できます。

ただし、すでにこれらの3つのノードにログインしている場合(slurm内ではなくsshを使用して)、この3つのログインセッションを排他的に使用してコマンドを実行したい場合は、他のタスクslurmを中断する可能性があることに注意してください。します。これらをまとめています。通常、slurm設定はslurmコマンドを使用せずにコンピューティングノードに直接ログインできないように設定されていますが、設定ではそうではありません。 slurm srun コマンドは(設定に応じて)いくつかのタイプの MPI を使用してパラレルコードを実行できます。 mpi コマンドを直接使用してコードを実行できます。コードを実行するためのMPIコマンド(mpiexecなど)に慣れていない場合、特にsallocメソッドが機能している場合、このアプローチは使用しません。

関連情報