これは簡単な質問だと思うかもしれませんが、私には解決策が見つかりません。次のループを実行します。
A = zeros(1,10000000);
parfor i = 1:length(A)
A(i) = i;
end
これは私のコンピューターの単一のコアでのみ実行されますが、簡単に並列化できます (または、少なくとも並列化する必要があります)。私はMatlab 2012bを使用しており、並列ループを作成する方法に関するドキュメントを探してみましたが、見つかりません(matlabのドキュメントは、これらのループを実際に実行する方法ではなく、これらのループを作成する方法の例を示しているだけです)。
並列計算ツールボックスの設定を変更する方法を調べてみましたが、すべてMatlab 2013用であるため(私は2012bを使用しています)、どれも機能しません。誰かが実際に並列に実行される簡単な並列化可能なループの例を提供できれば、私は非常に感謝しています!
注: 並列計算ツールボックスがインストールされていることを確認しましたが、有効になっているかどうか、または有効にする方法がわかりません。preferences
コマンドプロンプトに入れましたが、そこには表示されませんでした)。
編集:これを行うことで機能しました:
matlabpool('open',4);
A = zeros(1,10000000);
parfor i = 1:length(A)
A(i) = i;
end
matlabpool('close');
...しかし、なぜこれが機能するのか、毎回プールを閉じているのか、プールが実際に何であるか(ドキュメントを読んだ、matlabpool
まだ理解していない)、およびparpool
.. .