这样,就相当于将一台计算机的两个核心,当做两台机器用啦。接下来是编程序实现的方法。
MATLAB并行计算的模式有几种?
主要是两种:并配前parfor模式和spmd模式。两种模式的应用都很简单。第一个中,parfor其实就是parallel+for简化而来,顾名思义啊,就是把原来程序中的for循环中的关键字forg改为parfor就OK啦。不过这是很初步的介绍,限于篇幅不能详细展开了,详细的可以用输入命令help parfor查看:
同样地,可以适用于spmd模式。
程序举例:例如很简单的一个程序:
tic
%传统方式计算
c1=1
for i = 1:500
c1 = c1+max(eig(rand(i,i)))
end
t1 = toc
matlabpool open
%parfor并行方式计算
tic
c2=1
parfor ii = 1:500
c2 = c2+max(eig(rand(ii,ii)))
end
t2 = toc
matlabpool close
display(strcat('parfor并行计算时间:',num2str(t2),'秒'))
display(strcat('客户端串行计算时间:',num2str(t1),'秒'))
分别用传统方式算和parfor算,时间区别如下图所绝清示:
这只是用双核计算卖基的效果,如果是4核心8核心,效果要好的多啦,需要用MATLAB的童鞋不妨试试看咯。
关闭并行计算模式。
第一步:首先打开MATLAB命令窗口,喊瞎袜输入神液matlabpool open ,或者把这句加入程序开头。第二步:主要是郑激两种:parfor模式和spmd模式。两种模式的应用都很简单。
parfor其实就是parallel+for简化而来,就是把原来程序中的for循环中的关键字for改为parfor就行。
spmd 自己help就会了。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)