MATLAB并行Parfor内存使用询问

时间:2012-02-21 15:46:24

标签: matlab memory-management parallel-processing

虽然我之前在这里找到了许多问题的解决方案,但我是新来的问题。

这个特殊的问题我似乎无法找到答案,所以我会加入并问。

我使用并行计算工具箱同时运行多个模拟,我正在开发的代码将部署在单个核心上,因此无需将算法转换为并行。

每个模拟创建的数据结构都很大,一次运行8次模拟就是使用我机器中的所有可用RAM(4GB)。

我目前正在考虑减少每个模拟使用的内存,并且想知道是否有人知道如何从函数的每个实例获取内存使用信息。

到目前为止,我一直在打电话:

parfor i=1:8
   [IR(:, i) Data(i)] =   feval(F, NX, NY(i), SR, NS, i);
end

内部功能F

[usr, sys] = memory;
format short eng;
TEST.Mem = usr.MemUsedMATLAB;

但这可以理解的是返回所有8个F实例使用的内存。

我想从F的每个实例获取信息。

注意:数据结构TEST作为数据返回到顶级函数。

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

您可以使用matlab探查器获取内存使用情况的提示:

% start profiler
profile -memory on;

% start your simulation
my_sim();


% look at profiler results
profile viewer