GNU/Linux >> Linux の 問題 >  >> Linux

SLURM sbatch スクリプト内で Bash 変数を使用する

Slur が #SBATCH の処理を​​停止します スクリプト内の実行可能コードの最初の行のディレクティブ。 #SBATCH のユーザー向け ディレクティブは、それらのディレクティブの上で実行しようとしているコードに依存しません。 #SBATCH を配置するだけです

OP と同様に、sbatch オプションがその上に配置したコマンドに依存している場合は、回避策/解決策について他の回答を参照してください。

<ブロック引用>

バッチ スクリプトには、「#SBATCH」スクリプト内の実行可能なコマンドの前で始まるオプションが含まれる場合があります . sbatch は、スクリプト内の最初の非コメント非空白行に達すると、それ以降の #SBATCH ディレクティブの処理を停止します。

sbatch ドキュメントから、強調します。


これはうまくいきません。

を実行するとどうなるか

sbatch myscript.sh

slurm はこれらの特別な #SBATCH 行のスクリプトを解析し、ジョブ レコードを生成し、バッチ スクリプトをどこかに保存します。バッチ スクリプトは、後でジョブが実行されたときにのみ実行されます。

そのため、ワークフローを少し異なる方法で構築し、ジョブを送信する前にまず必要なプロシージャの数を計算する必要があります。次のようなものを使用できることに注意してください

sbatch -n $numProcs myscript.sh

、スクリプトを自動生成する必要はありません (また、mpirun は割り当て内の proc の数を自動的に取得できるはずです。「-np」を使用する必要はありません)。


Linux
  1. Bashスクリプト(I)

  2. Curl Outfile変数がBashスクリプトで機能しませんか?

  3. Bashスクリプトに.shまたは.bash拡張子を使用しますか?

  1. BashスクリプトのRmコマンドは変数では機能しませんか?

  2. Bash スクリプトで Expect を使用して、SSH コマンドにパスワードを提供する

  3. bash スクリプト内での自動 docker ログイン

  1. LinuxBashシェルスクリプトで暗号化されたパスワードを使用する方法

  2. Bashスクリプトでifelse条件文を使用する方法

  3. jenkins パイプラインで bash コマンドを実行する