MATLAB 多核运算parfor函数详解

评价:
0
(0用户)

Matlab中的并行运算常用的有 parfor-loop代替for-loop加速计算,这里parfor就是parallel的意思。
client把任务分配给多个workers,在一个循环中同时运行,等所有workers运行完返回结果,然后对结果进行整合。
一个迭代就是指执行一次循环体。每一个worker独立地按照一定的次序迭代。

官方原图:
官方原图

在原有的程序中将for改为parfor即可。下面是一个例程,可见并行多核运算计算时间更短。

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;
% parpool(2);
parfor i=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);

本文为原创文章,转载请注明出处!

注册并通过认证的用户才可以进行评价!

admin:支持一下,感谢分享!,+10,  

发表评论