Parfor循环就挂,CPU使用归零

57视图(30天)
JohnDapper
JohnDapper 2016年3月14日
回答: Tianzong王2022年10月27日
嗨。这是我尝试运行示例代码。
parfor我= 1:num
(回答:,我)= someFunction (someData(:,我));
结束
关键信息:“someFunction”是一个c++墨西哥人文件。是一个“someData” memmapfile (memmapfilename.data),因为它太大了,被加载到每个工人
奇怪的是,parfor循环就挂,CPU使用率趋于零,当我按CTRL + C,这就是我得到的:
操作由用户在distcomp终止。remoteparfor / getCompleteIntervals(线
127)
parallel_function > distributed_execution(第820行)
(标签,)= P.getCompleteIntervals (chunkSize);
parallel_function(第587行)
R = distributed_execution (
这不是一个问题,如果我将“parfor”替换为一个简单的“对” ——一切工作正常。似乎发生的是,一些工人变得反应迟钝。遇到上面的问题后,甚至一个简单的命令,如运行
pctRunOnAll1 + 1
只会返回“2”一些,但不是全部,工人。
任何帮助就太好了。一个全新重装没有帮助。“parpool”验证通过。
5个评论
大卫Saidman
大卫Saidman 2020年1月14日
有人成功了呢?我拥有完全相同的2017 b,绝对没有键盘的声明。
如果我等待,它最终运行但在单个CPU(事件tho我池有18和20物理和40个逻辑CPU核心,大约10 gb空闲内存性能监视器)。

登录置评。

答案(7)

戴夫Behera
戴夫Behera 2016年3月24日
似乎有一个死锁,当工人们正试图访问文件使用相同的对象(你从memmapfile)。由于进展变得停滞不前,零CPU使用率和没有中止的消息。
你能试着创建一个单独的memmapfile对象在每个parfor someFunction函数迭代和传递?这可能使文件访问线程安全的。
同时,你能试着相同的工作流spmd吗?
8的评论
Arabarra
Arabarra 2021年1月11日
同样的问题在这里。对于我来说这不是reproductible,有时工作,有时不。没有死锁或任何可疑代码。

登录置评。


阿维德马顿斯
阿维德马顿斯 2018年1月9日
我注意到问题后开始发生我更新了司机的gpu计算时使用。回滚驱动程序来解决这个问题。然而,新的GPU硬件上,当前的很旧。所以我希望这个问题得到解决。
有办法这种停滞发生时抛出一个错误?我可以写一个错误处理减少损失的时间拖延。


桑杰马诺
桑杰马诺 2019年6月3日
编辑:桑杰马诺 2019年6月3日
我是拥有相同的parfor问题,直到我发现我有一个“ 键盘 ”在我的代码指令。

深海
深海 2021年8月15日
我已经遭遇到了这对夫妇周问题,并通过移除固定 “继续” 在一个if-judgement和for循环。
CondA
如果CondB
继续;%避免使用“继续”
结束
结束

海兴方
海兴方 2021年10月23日
从昨天我突然有这个问题,之前的所有代码跑得很好。我真的不知道为什么会这样。它是如此恼人的。任何一个找到一个解决方案吗?

Tianzong王
Tianzong王 2022年10月27日
我也一样,大部分核心不工作。有什么建议吗?和JCEF是什么?

类别

找到更多的在并行for循环(parfor)帮助中心文件交换

标签

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!