問題タブ [slurm]
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.
submit - SLURMと連続ジョブ
SLURM を使用して連続ジョブを設定しようとしましたが、失敗しました。
現在のジョブの最後に、次のジョブのフォルダーと入力ファイルを正常に作成しました。そのフォルダーに移動することもできますが、送信するとすぐに停止します。ジョブは送信されますが、何も起こりません。エラー メッセージが表示されずに停止します。
これが私が進める方法です:
SLURM スクリプトから SLURM ジョブを送信する方法を知っている人はいますか?
LSFでこれを行うのに問題はありません。
ありがとうございました、
エリック。
bash - 異なるノードで異なる入力ファイルを使用して実行可能ファイルを実行するための SGE の設定 (更新: いくつかの問題あり)
このリンクから以前に同じ質問をしたことは知っています:
異なるノードで異なる入力ファイルを使用して実行可能ファイルを実行するための SGE の設定
そのスレッドで言ったように、すべてが 1 つの送信スクリプトにラップされているため、以前は SLURM システムでこの種のことを問題なく使用していました。ただし、上記のリンクの前の質問から適応して、SGE に関する私のアプローチを次に示します (これが悪い習慣であることはわかっていますが、これ以上の方法は考えられませんでした...)。
ジョブは 4+N 個のスクリプト ( run.sh
、submitSerial.sh
、wrap.sh
、temp.sh
、およびjob{1-N}.sh
run.sh
:メインジョブスクリプト
submitSerial.sh
およびtemp.sh
: 最初にこの実行可能ファイルをシリアルで実行する必要があり、これが完了するまでクラスターを待機させて、 の手順の次の行に進みますrun.sh
。run.sh
はクラスター環境ではなく (つまり、Grid Engine パラメーターがない)、ログイン ノードにのみ存在するため、qsub を介してシリアル スクリプトが生成され、temp.sh
すぐに実行されます。qsub ジョブが完了したかどうかを確認する方法がわからないので、愚かな方法で実行する必要がありました。確認する良い方法があるのだろうか?
wrap.sh
andjob{1-N}.sh
: これは、スクリプトの開始時に以前に生成されたものです。前回質問した部分ですが、qsubの状態もsleepで確認してみました
このアプローチの問題は、一度実行するrun.sh
と、バックグラウンドで実行できず、別qsub
の実行をしなければならないため、クラスターがいっぱいの場合に問題が発生する可能性があることです。qsub
SLURM アプローチのような1 つだけのソリューションがあるのだろうか? 途中で不明なジョブが終了するかどうかを知らずにスクリプトに複数の qsub ジョブを送信させるのではなく、ジョブを送信して完了するまで待ちたいだけです (どこで終了するかわかりません)。
これで私を助けてください!あなたの助けは大歓迎です! 事前にどうもありがとうございました!
cluster-computing - slurm GPU 割り当てのコード フロー
SLURMでGPUがどのように割り当てられるかコードフローを知っている人はいますか? 私が調べたところ、CUDA_VISIBLE_DEVICES 環境変数がコードのどこにも更新されていないことがわかりました。では、実際にコードでどのように行われるのでしょうか?
私の目標は、割り当てに環境変数を使用して新しいハードウェア サポートを追加することです。
memory - ジョブの実行中にメモリ リソースを変更する
ジョブの実行中に --mem-per-cpu の値を変更することはできますか?
私のスクリプトでは、非常にメモリを消費するタスク (~50Gb) がありますが、実行時間は非常に限られています (~30 分)。その後、実行時間の長い (~12 時間) メモリを消費するいくつかの小さなタスクを実行する必要があります。--array=1-300 を使用して送信する同様のジョブが 300 件以上あります。他のジョブを送信できるようにするために、最初のメモリ消費タスクの後に必要なメモリを減らすことは可能ですか?
ありがとう
linux - slurm スクリプトで「コマンドが見つかりません」と表示される
入力ファイルで m4 を実行するスクリプトを slurm に送信しようとしています。m4 はクラスターにインストールされており、スクリプトを単独で実行すると、すべてが期待どおりに機能します。しかし、slurm スクリプトを介して実行を slurm に送信すると、エラーが発生します。
実行したいスクリプトは次のとおりです (m4it.sh という名前)。
[デバッグの試みで PATH と SHELL を出力していることに注意してください。]
そして、ここに私のスラームスクリプトがあります:
を介してslurmに正常に送信されます
実行すると、m4it.err ログファイルに次のエラーが記録されます。
PATH および SHELL 変数 (m4it.slurm および m4it.sh スクリプトによって m4it.out に出力される) は同一です。PATH にはログイン時の PATH が含まれており、予想どおり、SHELL は /bin/bash です。
PATH のディレクトリから m4 実行可能ファイルへのシンボリック リンクを含めても、このエラーが発生します。また、問題は m4 だけではありません。スクリプトは、コマンド ラインで問題なく実行されますが、コマンド「apropos」を不明なコマンドとして報告します。ただし、スクリプトは「cd」と「ls」を問題なく実行できます。
読み取り/書き込み/実行権限を確認しました。
次の結果が得られます。
m4it.sh スクリプトが実行されるノードはフロント ノードとは異なり、何らかの情報 (環境変数またはパス) が渡されないようです。次のように、引数 --export=ALL を使用してすべての設定をエクスポートしようとしました。
しかし、これもうまくいきませんでした(同じ結果)。誰でもここで助けることができますか?
perl - Perl API を介して SLURM にジョブを送信するために必要なこの「job_desc_msg_t」形式は何ですか?
SLURMのPerl APIは、API を使用してジョブを送信するには、「ジョブの説明」($job_desc
または$job_desc_msg
) を指定する必要があることを示しています。これには構造job_desc_msg_t
がありますが、何が何であるかはわかりませんjob_desc_msg_t
。
更新: slurm.h の 1162 行目から見つけたので、同様の構造のハッシュを渡す必要があると推測しています。