3

matlabpool を実行することのオーバーヘッドは何ですか?

matlabpool を開始しました:

matlabpool open 132procs 100
Starting matlabpool using the '132procs' configuration ... connected to 100 labs.

そして、ノードでのCPU使用率を次のように追跡しました:

pdsh -A ps aux |grep dmlworker

matlabpool を起動すると、CPU 使用率が平均で約 35% から始まり、プールが使用されていないときは (5 ~ 7 分で) 平均で約 2% まで低下します。

これは正常ですか?典型的なオーバーヘッドは?matlabpooljob が「バッチ」ジョブとして起動された場合、それは変わりますか?

4

1 に答える 1

1

これは正常です。ps auxローリング ウィンドウではなく、プロセスが開始されてからの平均 CPU 使用率を報告します。これは、ワーカーが比較的迅速に初期化してからアイドル状態になりますが、これが CPU% に反映されるまでに時間がかかることを意味します。topこれは、最後の画面更新以降の使用率を %CPU に反映するLinux コマンドなどとは異なります。

典型的なオーバーヘッドに関しては、これは多くの要因に依存します: 明らかに、ワーカーの数、送信されたジョブの速度とデータ サイズ (ワーカー プロセスの維持と同様に、入力と出力のマーシャリングにいくらかのオーバーヘッドがあります。 「有用な計算」の一部)、Matlab プールがローカルであるか、ジョブ マネージャーに接続されているか、および Matlab のバージョンと O/S。

経験から、最新の *nix サーバーでの大まかなガイドとして、アイドル状態のワーカーがシングル コアの 20% 以上を消費するべきではないと思います (たとえば、16 コア ボックスで合計 CPU 使用率が 1% 未満)。構成の問題がない限り、初期化。送信するジョブの種類 (たとえば、「createJob」、「batch」、または「parfor」のいずれを使用するか) によってこれが影響を受けるとは思わないでください。その下にあるワーカーと通信メカニズムは本質的に同じです。

于 2012-10-09T10:56:57.647 に答える