SLURMを使用したコメントのコマンドラインマクロ

SLURMを使用したコメントのコマンドラインマクロ

私の考えでは、レビューはレビューです。プログラムの状態を絶対に変更しないでください。残念ながら、人々はスラム同意しない。

SLURMには、.shファイルの前に次の構文(または類似の構文)が必要です。

#!/bin/bash

#SBATCH --time=5:00:00    
#SBATCH --ntasks=8
#SBATCH --mem-per-cpu=1024M

MyProgram.exe

MyProgram.exe上記は、8つのプロセッサを使用する学校のスーパーコンピュータでプログラムを実行するように要求を送信します。私は現在私のコードをベンチマークしており、コマンドライン引数を使用してプロセッサの数を変更したいと思います。実際、私は次のことをしたいです。

#!/bin/bash

#SBATCH --time=5:00:00    
#SBATCH --ntasks=%1
#SBATCH --mem-per-cpu=1024M

MyProgram.exe

%1コマンドラインパラメータはどこにありますか?それから「sbatch myShScript.sh 123123プロセッサを使う」と呼びました。もちろん、これはbashが#SBATCH --ntasks=%1その行をコメントとして解釈し、コマンドライン引数にsubを使用しないため、機能しません。

SLURMまたはBASHをだましてコマンドライン引数を置き換える方法はありますか?

答え1

すべての処理はSLURM(経由)によって行われます。sbatch特に)はbashを呼び出す前に実行されるので、ここではbashが役に立ちません。スクリプトはどんな言語でも可能で、重要ではありません。これは#SBATCH偶然のbash注釈だけであり、重要なことはこれがガイドラインであることsbatchです。

特定のスクリプトで常に同じパラメータを使用する便利な方法を提供するために、ファイルにオプションを指定できます。他のオプションを使用するには、コマンドラインにそのオプションを渡しますsbatchsbatch一部の特定のパラメータでオプションを作成する場合は、実行されるラッパースクリプトを作成できます。ジョブスクリプトの標準入力(aここのドキュメント)を好みに応じて別々のファイルとして保存する代わりに便利です。

#!/bin/sh
sbatch --time=5:00:00 --ntasks="$1" --mem-per-cpu=1024M <<'EOF'
#!/bin/sh
MyProgram.exe
EOF

関連情報