Why parfor loop so efficient?
8 ビュー (過去 30 日間)
古いコメントを表示
Hi I tested two script in the following
%1. Parall_try
parfor i = 1:2000
for j = 1:10000
b(i,j) = i*j+i/j;
end
end
and
%2. Serial_try
for i = 1:2000
for j = 1:10000
a(i,j) = i*j+i/j;
end
end
I set two workers totally. The profile report shows 32s for running serial_try, and about 2s for parallel_try. I noticed the parallel running does not output any i/j index to workspace, which may explain the speed up of parallel running. Is this really true? It motivates me to find a more efficient way to run my script. In script, it output every variable to workspace, which can be very time-consuming. Can I calculate them without output them to workspace? It may sounds absurd because I have not figured out why parfor loop can be that efficient.
2 件のコメント
採用された回答
Walter Roberson
2016 年 5 月 30 日
parfor effectively pre-allocates the arrays before use whereas your non-parfor solution does not. That makes a big difference in efficiency.
0 件のコメント
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Loops and Conditional Statements についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!