我熟悉matlabpool
, and parfor
用法,但我仍然需要加快计算速度。
我的 1GB 网络中有一台功能更强大的计算机。两台计算机都有 R2010b,并且具有相同的代码和路径。
使用两台计算机进行并行计算的最简单方法是什么?
我今天使用的代码示例:
--- main.m---
matlabpool('open', 3);
% ...
x = randn(1e5,1);
y = nan(size(x));
parfor k = 1 : length(x)
y(k) = myfunc(x(k));
end
--- myfunc.m---
function y = myfunc(x)
y = x; % some computation
return
对于真正的集群计算,您需要分布式计算工具箱 http://www.mathworks.nl/products/distriben/,正如您可以在并行计算信息页面 http://www.mathworks.nl/products/parallel-computing/:
无需更改代码,您就可以在计算机集群或网格计算服务(使用 MATLAB DistributedComputingServer™)上运行相同的应用程序。您可以交互或批量运行并行应用程序。
但是安装(=购买)一个工具箱只是为了将一台计算机添加到工作池中可能有点太昂贵了。幸运的是,还有其他选择:http://www.mathworks.com/matlabcentral/fileexchange/13775 http://www.mathworks.com/matlabcentral/fileexchange/13775
我个人没有使用过这个,但认为它绝对值得一看。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)