why parfor-loop spend more time for-loop?

조회 수: 1 (최근 30일)
Tao
Tao 2014년 4월 15일
댓글: Tao 2014년 4월 16일
function test_parfor
N = 1e8;
sum_all = 0; % sum all numbers
sum_odd = 0; % sum odd numbers
sum_even = 0; % sum even numbers
tic;
parfor i = 1 : N
sum_all = sum_all + i; % sum all numbers
if mod(i,2)
sum_odd = sum_odd + i; % sum odd numbers
else
sum_even = sum_even + i; % sum even numbers
end %endif
end %endfor
toc;
fprintf('sum_all=%d,\nsum_odd=%d,\nsum_even=%d.\n', ...
sum_all, sum_odd, sum_even);
I have initialized the parpool envionment and run the codes above. However, the parfor-loop took far more time than single for-loop. Why? What is wrong with my codes? Thank you very much! :-)

답변 (1개)

Matt J
Matt J 2014년 4월 15일
Did you execute it in a script or a function? Try the latter.
  댓글 수: 3
Matt J
Matt J 2014년 4월 15일
How many cores on your machine? And how many workers in your parpool?
Tao
Tao 2014년 4월 16일
Thank you for your reply. The numCores of my PC is 12. I initialize 12 workers.

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Parallel for-Loops (parfor)에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by