0
  • クアッドコアのデスクトップ コンピューターを使用しています
  • Matlab に Parallel Computing ツールボックスがあります。
  • 各コアで同時に実行する必要があるスクリプト ファイルがあります。

これを行う最も効率的な方法はわかりません。4 つのローカル ワーカーで「matlabpool」を作成できることはわかっていますが、同じスクリプトを各ワーカーに割り当てるにはどうすればよいでしょうか。または、「バッチ」コマンドを使用して特定のスレッドでスクリプトを実行し、それをスレッドごとに実行できますか?

ありがとうございました!

4

2 に答える 2

1

Parallel Computing ツールボックスを使用して、複数のコアを使用して単一のスクリプトを実行できます。matlabpool open local 4 を使用し、for ループの代わりに parfor を使用して、ループ内にあるものを 4 つのスレッドで実行できます。Parallel Computing ツールボックスがスクリプト全体を各コアで個別に実行することをサポートしているかどうかはわかりませんが、これはハードウェアでサポートされていない可能性があります。

于 2013-02-06T22:51:48.347 に答える
1

これが機能するかどうかはわかりませんが、次のことを試してみてください。

計算を並列化しようとすると、通常、次のようなものでラップされますparfor

したがって、スクリプトで同じことを行うことをお勧めします。必要なすべての入力と出力に必要なディメンションがあることを確認し、次のように呼び出します。

parfor ii = 1:4
   myscript;
end

補足: この種のことを試す前に、CPU 使用率を確認することをお勧めします。すでに高い場合は、コードの内部で並列処理が使用されていることを意味し、あまり高速化は期待できません。

于 2013-02-08T16:43:10.260 に答える