問題タブ [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.

0 投票する
1 に答える
685 参照

matlab - slurm sbatch を使用してクラスター ジョブにパラメーターを割り当てる

slurm sbatch を使用して、クラスターで matlab 関数を並列起動しています。

数値パラメーターを matlab 関数に割り当てるための sbatch ファイルの適切な構文は何ですか?

私は次の(および同様の)を試しました:

${SLURM_ARRAY_TASK_ID} は機能していますが、matlab は VAR1 と VAR2 を認識しません。

エラー: 未定義の関数または変数 'VAR1'。

0 投票する
1 に答える
113 参照

parallel-processing - 他のユーザーが使用すると、slurmコントローラーが何度もビジーになります

私は SLURM を初めて使用します。私が使用するグリッドにはさまざまなユーザーがいて、ジョブを送信またはキャンセルしているときに、他のユーザーがパーティションの状態などを照会できないようです。これは、特に他のユーザーを生成するジョブを作成するときに非常にイライラします。コントローラーがビジーであるためにジョブが失敗するためです。誰かが回避策を知っていますか?

0 投票する
1 に答える
4529 参照

python - slurm を使用してグリッド上で helloworld.py プログラムを実行する

これは長い質問なので、最初に要約します。

私は並列プログラミングとグリッド システムの初心者です。アカウントを持っているグリッドでhttp://jeremybejarano.zzl.org/MPIwithPython/introMPI.htmlの最初の例を実行したいと思います。メンテナによって提供された C の例があります。私はそれを実行できます。しかし、Python バージョンでは、ランクがすべてゼロになります。何が問題なのですか?

質問の長いバージョン:

このコードは、実行に時間がかかる python 2.7 (+numpy+matplotlib+mayavi) で記述されています。私はいくつかのグリッドにアカウントを持っているので、そこにコードを移動し、試行が完了するのを待つ時間を減らしたいと考えています。

残念ながら、私は並列処理やグリッドなどに不慣れです。また、グリッドの管理者権限もありません。

一部のドキュメントが提供されています。システムは SLURM を使用します。スバッチファイルを用意し、 でジョブを送信しますsbatch filename。C で書かれたこの helloworld プログラムの例があります。

そして、管理者が提供するそれを実行するための slurm ファイル:

までに提出できますsbatch helloworld.slurm。最後に、0 から 3 までの「hello worlds」が表示されます。たとえば、ランクはプロセスごとに異なる値を取ります。良い!

問題は、Python で書かれたサンプル プログラムがないことです。システムの python は古いです: 2.6.x。そこで、anaconda ディストリビューションをダウンロードして、ユーザー空間にインストールしました。上記の helloworld.slurm の例を適応させようとしました。ここで helloworld の例を実行したいと思います: http://jeremybejarano.zzl.org/MPIwithPython/introMPI.html。ジョブを送信できますが、出力ファイルからわかるように、すべて同じランクの helloworld を取得します。たとえば、これは異なるプロセスでは実行されないようです。

注: C バージョンでも同じエラーが発生しますが、それでも実行され、異なるランクが生成されます。

ハローワールド python バージョン:

Python Hello World の slurm ファイル (main.py)

生成されたエラー ファイル:

出力ファイルは次のように生成されます。

それで、問題の原因は何でしょうか?どうすれば解決できますか?

私は明らかに管理者にメッセージを送信しましたが、彼はまだ応答していません。

0 投票する
1 に答える
785 参照

configuration - slurm: 計算にも制御ノードを使用します

私たちのラボでは、コンピューティング用に小さなクラスター (9 ノード) をセットアップしました。現在、1 つのノードを slurm コントローラーとして使用しています。つまり、コンピューティングには使用されていません。

私もそれを使用したいのですが、すべての CPU を割り当てたくはありません。スケジューリングやその他のマスター ノード関連のタスクのために 2 つの CPU を空けておきたいと考えています。

slurm.confにそのようなものを書くことは可能ですか:

それとも何かを壊しますか?クラスターはすでに本番環境にあり、何かを壊すのではないかと心配しているため、最初に質問せずにテストしたくありません...上記のパーティションでは、マスターはコントローラーのホスト名で、node0 [1-8]は通常の計算ノード。ご覧のとおり、マスターを使用しないと、クラスターの CPU の 10% が失われます...

前もって感謝します

0 投票する
1 に答える
7040 参照

bash - seq はカンマを小数点記号として使用します

私のコンピューターの 1 つ (Ubuntu LTS 14.04) で奇妙な動作に気付きましたseq: 小数点記号としてポイントを使用する代わりに、コンマを使用しています:

私の他のPCの同じバージョンのseq(8.21)は、通常のポイントを提供します(同じUbuntuバージョンも)。最も奇妙なことは、最初のマシンからリモート マシンに SSH で接続したときに、リモート マシンでも同じ悪い動作を観察していることです。競合するマシンからリモート マシンのジョブ スケジューラ (slurm) に送信された bash スクリプトでさえ、この問題を抱えています。私は非常に混乱しています。なぜ(そしてどのように!)これが起こっているのですか?

0 投票する
6 に答える
68250 参照

slurm - slurm ジョブの CPU 時間とメモリ使用量を調べる

それはかなり些細な質問だと思いますが、それにもかかわらず、slurm ジョブ ID によって使用される CPU 時間とメモリを表示する (sacct だと思います) コマンドを探しています。

0 投票する
1 に答える
7332 参照

cluster-computing - 複数のノードで slurm スクリプトを実行し、1 つのタスクでジョブ ステップを起動する

バッチ スクリプトを使用して多数のジョブ ステップを起動しようとしています。異なるステップは完全に異なるプログラムである可能性があり、それぞれに正確に 1 つの CPU が必要です。最初に、 への--multi-prog引数を使用してこれを実行しようとしましたsrun。残念ながら、ジョブに割り当てられたすべての CPU をこの方法で使用すると、パフォーマンスが大幅に低下します。実行時間は、シリアル化されたほぼ値まで増加します。アンダーサブスクライブすることで、これを少し改善できます。この問題に関してオンラインで何も見つけることができなかったので、使用しているクラスターの構成の問題であると想定しました。

ということで別ルートで行ってみました。次のスクリプトを実装しました(経由で起動sbatch my_script.slurm):

--exclusive私の場合、引数が実際には必要ないことは承知しています。呼び出されるシェル スクリプトには、さまざまなバイナリとその引数が含まれています。私のスクリプトの残りの部分は、すべてのプロセスが終了したという事実に依存しているため、wait. 呼び出し行を変更して、最小限の作業例にしました。

最初はこれが解決策のように見えました。残念ながら、ジョブの割り当てで使用するノードの数を増やす--ntasksと (たとえば、クラスター内のノードあたりの CPU の数よりも大きな数に増やすことによって)、スクリプトが期待どおりに機能しなくなり、戻り値が返されます。

1つのノードのみを使用し続けます(つまり、私の場合は48個のCPUで、以前と同じくらい速くジョブステップを通過し、その後、他のノードのすべてのプロセスが強制終了されます)。

これは予想される動作のようですが、実際には理解できません。特定の割り当てのすべてのジョブ ステップに、割り当てに含まれるノードの数と等しい最小数のタスクを含める必要があるのはなぜですか。通常、割り当てに使用されるノードの数はまったく気にしません。

複数のノードで確実に使用できるように、バッチ スクリプトを実装するにはどうすればよいですか?