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

Matlab: Error using parallel_function: Out of Memory

我在 Windows 7 64 位、Core i7 CPU 和 8 GB RAM 上使用 Matlab R2011b 版本。我是 运行 近似最近邻算法,称为使用 Matlabpool 的局部敏感散列。启动 Matlab 池后,我得到输出

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

当控件到达for循环时,Matlab抛出errro

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

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

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

parfor 循环中的所有 workers/labs 都是独立的,因此每个循环都需要自己的内存量。此外,由于池必须传播和收集数据 from/to 工作人员。

尝试使用常规 for 或打开一个有 2 个工人而不是 4 个工人的游泳池。

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