db1*_*234 1 parallel-processing performance matlab for-loop
我对Matlab中的并行计算还有点新意.我成功地在C中使用了OpenMP,但在Matlab中无法获得更好的性能.
首先,因为我是一个我不熟悉的大学的机器,所以我通过输入ver命令提示符验证我所在的机器有Parallel Computing Toolbox 并显示: Parallel Computing Toolbox Version 5.2 (R2011b).请注意,该机器有4个核心
我尝试了使用parforvs.的简单示例for,但for总是赢了,尽管这可能是因为开销成本.我正在做一些简单的事情,比如这里的例子:MATLAB parfor慢于 - 出了什么问题?
在尝试将parfor应用于我更大的更复杂的程序之前(我需要计算500个函数的评估,每个评估需要大约一分钟,所以并行化将在这里有所帮助),我非常希望看到一个具体parfor节点的节拍示例for..OpenMP的例子非常丰富,但没有找到一个简单的例子,我可以复制和粘贴那个节目parfor比for
我使用以下代码(每个Matlab会话一次)以便使用parfor:
pools = matlabpool('size');
cpus = feature('numCores');
if pools ~= (cpus - 1)
if pools > 0
matlabpool('close');
end
matlabpool('open', cpus - 1);
end
Run Code Online (Sandbox Code Playgroud)
这为其他进程留下了1个核心.注意,该feature()命令没有记录.