我在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
我不知道如何解决这个问题。请帮忙。谢谢
答案 0 :(得分:2)
这是因为parfor
需要更多内存。
parfor
循环中的所有工人/实验室都是独立的,因此每个人都需要他的内存量。此外,由于池必须传播并从工作人员那里传播数据,因此涉及开销。
尝试使用常规for
或使用2名工作人员而不是4名工作人员打开游泳池。
此外,还取决于some_function()
的优化程度:尝试使用尽可能少的变量。