私はparforレベルで最大の労働者数を指定できるかどうか知りたいですか?Matlab並列処理:parforレベルで使用する作業者の数を制限できますか?
私はmatlabの並列プール内のワーカーの数を変更する方法を知っていますが、私はparforループに割り当てられたワーカーをすばやくダイナミックに変更したいと考えています。
合理:私はいくつかの長いループのparfor、時には仕事の奇数、と言う5は、最後の1が始まる前に終了する4つの他の人を待っているものを残して実行している、これは比較すると非常に遅いです5つすべてを並行して実行するだけです。私が望むのは、5つのジョブがあるかどうかを判断し、5つをすべて並列に実行できるコードですが、6つある場合は2つの3つのジョブを実行する方が良い設定なので、このケースでは3人、前者では6人です。
これを達成するために並列プールをシャットダウンして再起動するのは、むしろ遅くて面倒です。たとえば、10人の作業者で起動するだけで、実行時に使用するのが最も効率的なものがいくつあるかを動的に判断する方法があれば、問題は解決します。
この構文は次のとおりです: 'parfor(loopvar = initval:endval、M);ステートメント。文章に従って: "最大M人のワーカーまたはスレッドを使用してループ内の文を実行します。ここでMは負ではない整数です" – Amro
@Amroああ、私は完全にそれを逃した、ありがとう!それを回答として投稿できますか?それは私が探していたものです。 –