0

CPU 構成に従って、ローカルの Matlab (R2015b) ワーカー プールをセットアップしました (クアッドコア、マルチスレッド => 合計 8 ワーカー)。

24 時間続くシミュレーションがありますが、同時にコンピューターを使用できるようにしたいと考えています。したがって、同時に作業を続けることができるように、1 日に 4 つのシミュレーション (バッチ経由で送信) に制限しています。

私の質問は次のとおりです。8 つのワーカーを使い果たすことなく、複数のジョブをキューに入れるにはどうすればよいですか? 関連するもう 1 つの質問は、プールのサイズを 4 ワーカーに減らしても、Matlab をスムーズに実行できるでしょうか?

ご回答どうもありがとうございました。

4

1 に答える 1

1

あなたの問題に対する最善の解決策は、matlabの代わりにbashを介して行うことだと思います。bash には、シミュレーションの優先順位を下げることができるniceというコマンドがあります。つまり、コンピューターを使用している場合はパワーが得られ、コンピューターを使用していない場合は計算がパワーになります。

あなたの質問の2番目の部分について。すべてのジョブをキューに入れる最も簡単な方法は、次のような bash スクリプトを作成することです。

for f in $(find . -name name_of_matlab_script*)
do
nice -n 10 matlab -nodisplay <$f
done

ここで、matlab スクリプトの名前は同じベースで何かと呼ばれ、残りは start によって処理されます。次に、スクリプトを次々に実行しますが、それ以外の目的でコンピューターを使用することを優先します。

より高度なスケジューリング ソフトウェアが必要な場合は、通常Slurmを使用します。

8 人ではなく 4 人の労働者については、Ander Biguri がコメントで述べているように、余計な時間を増やさない限り、できるだけ少なくしてください。

于 2016-06-06T10:34:49.677 に答える