MATLAB-parfor并行程序实例

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Startmatlabpool等关键词在Matlab R2016a中不再支持,在左下角,有按钮可以直接启动和关闭Parallelpool。由于我的电脑是4核,默认打开了4个worker。

下面在启动Parallelpool后,比较parfor和for的计算效率。

程序代码:

clear;

N = 1e4;

A = magic(N);

B = rand(N);

S = zeros(N,N);

tic;

for i=1:N*N

S(i) = sin(A(i))*cos(B(i)) + cos(A(i))*sin(B(i));

end

t1 = toc;

fprintf('for:%.3fs\n',t1);

S = zeros(N,N);

tic;

parfori=1:N*N

S(i) = sin(A(i))*cos(B(i)) + cos(A(i))*sin(B(i));

end

t2 = toc;

fprintf('parfor:%.3fs\n',t2);

运行结果为:

for:50.105s

parfor:15.757s

可见,parfor并行计算效率接近for的1/4,这是由于各循环计算之间是相互独立的。

相关文档
最新文档