0

我在 Windows 7 64 位、Core i7 CPU 和 8 GB RAM 上使用 Matlab R2011b 版本。我正在使用名为 Locality Sensitive Hashing 的 Approximate Nearest Neighbor 算法运行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

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

4

1 回答 1

2

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

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

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

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

于 2016-02-09T18:47:10.510 回答