使用网络计算机进行Matlab并行处理

Ser*_*erg 7 parallel-processing matlab cluster-computing

我熟悉matlabpoolparfor使用,但我仍然需要加快计算速度.

我的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
Run Code Online (Sandbox Code Playgroud)

--- myfunc.m ---

function y = myfunc(x)
    y = x; % some computation
return
Run Code Online (Sandbox Code Playgroud)

Gun*_*uyf 4

对于真正的集群计算,您需要分布式计算工具箱,您可以在并行计算信息页面上阅读:

\n\n
\n

无需更改代码,您就可以在计算机集群或网格计算服务上运行相同的应用程序(使用 MATLAB DistributedComputingServer\xe2\x84\xa2)。您可以交互或批量运行并行应用程序。

\n
\n\n

但是安装(=购买)一个工具箱只是为了将一台计算机添加到工作池中可能有点太昂贵了。幸运的是,还有替代方案:http://www.mathworks.com/matlabcentral/fileexchange/13775

\n\n

我个人没有使用过这个,但认为它绝对值得一看。

\n