遗传算法寻优时,计算迟迟不产生下一代计算结果,点暂停显示停在 remoteparfor.m文件的128行 obj.displayOutput();
是什么原因呢
该回答引用GPT与博主@晓码自在合作编写:
从您的描述,此问题很有可能是由于MATLAB的并行计算导致的。当您使用parfor循环进行并行化计算时,如果某个worker节点的计算任务过重或节点出现问题,会导致整个parfor循环卡在等待该节点的计算结果上,出现暂停的情况。
要解决此问题,有几种方法:
matlab
parfor (i = 1:100, 'Timeout', 60) % 设置最大计算时间60秒
do_some_thing;
end
matlab
maxNumCompThreads(4); % 设置最大4个worker节点
parfor (i = 1:100)
do_some_thing;
end
matlab
pool = parcluster; % 检查并行环境
if strcmp(pool.ResourceManager,'local') && pool.NumWorkers > 1
if ~isempty(checknode(pool,2)) % 检查节点2是否正常
pool.NumWorkers = 3; % 不使用节点2,只用3个节点进行并行
end
end
parfor (i = 1:100, 'Pool', pool)
do_some_thing;
end
希望上述方法能帮助您解决MATLAB parfor并行计算出现暂停的问题。