Matlab:使用parallel_function时出错:内存不足

时间:2016-02-09 18:42:29

标签: matlab parallel-processing parfor matlabpool

我在Windows 7 64位,Core i7 CPU和8 GB RAM上使用Matlab R2011b版本。我使用Matlabpool运行称为Locality Sensitive Hashing的近似最近邻算法。在启动Matlab池时,我得到了输出

Starting matlabpool using the 'local' configuration ... connected to 4 labs.

当控件到达for循环时,Matlab会抛出错误

Error using parallel_function (line 598)

Out of memory. Type HELP MEMORY for your options.

Error stack:
remoteParallelFunction.m at 29

Error in Evaluate (line 19)
parfor i=1:query_num

我不知道如何解决这个问题。请帮忙。谢谢

1 个答案:

答案 0 :(得分:2)

这是因为parfor需要更多内存。

parfor循环中的所有工人/实验室都是独立的,因此每个人都需要他的内存量。此外,由于池必须传播并从工作人员那里传播数据,因此涉及开销。

尝试使用常规for或使用2名工作人员而不是4名工作人员打开游泳池。

此外,还取决于some_function()的优化程度:尝试使用尽可能少的变量。