在matlab中执行parfor循环时如何为worker分配内存?

问题描述 投票:0回答:0

我的粒子群优化程序使用 parfor 循环来计算每个粒子群优化粒子的成本函数值。我在本地系统上有 4 个内核和 8Gb RAM,我正在使用 Matlab R2022a。

但是,我遇到了一个错误说明

一个工人在执行 parfor 循环期间中止。 parfor 循环现在将在剩余的工人身上再次运行

在运行我的程序的所有场合。然后整个程序执行每次都崩溃。在出现此错误之前,代码每次运行大约 3 小时。

然后,我尝试使用以下命令(我通过 ChatGPT 获得的建议)为 3 个工作人员中的每一个分配 1 Gb 内存:

poolobj = parpool('local', 3, 'MemoryLimit', '1G'); 
:my code:
delete(poolobj); 

但是这个命令也报了如下错误:

“MemoryLimit”不是 parpool 的有效参数名称。

如何成功地为每个worker分配内存?

matlab for-loop parallel-processing worker parfor
© www.soinside.com 2019 - 2024. All rights reserved.