gpt4 book ai didi

matlab - parfor 不打印

转载 作者:太空宇宙 更新时间:2023-11-03 20:02:35 27 4
gpt4 key购买 nike

我正在运行一个带有 parfor 循环的小脚本。该脚本以以下行开头:

parfor i=1:length(vX)
fprintf('%d/%d\n',i,length(X));
...

显然我应该马上看到打印输出。当我使用由 matlabpool(2) 打开的两个工作人员池运行它时,我看到了 no 打印输出。当我关闭 worker 并保持 parfor 循环时,我看到了打印输出,但只有在我按下 ctrl-c 时才会看到。当我将 parfor 更改为常规 for 时,我看到了输出。请注意,我从来没有看到循环运行完成,因为它很长,但打印输出是脚本的第二行并且应该立即发生,除非有一些我在 matlab 中不知道的缓冲区刷新问题。发生了什么??

最佳答案

我怀疑延迟是由于设置 parfor 循环的开销造成的。

根据我的经验,初始化循环可能需要几秒,最多 15 秒。当我的 a 循环中的代码使用占用大量内存的变量时尤其如此,因为必须将变量复制到工作程序。

worker 之间的数据复制是通过网络完成的,基本的网络事件监视器应该可以显示此事件。我发现确定我的 parfor 执行时间有多少被用于初始化工作人员很有用。

我一直在 parfor 循环中使用 fprintf;但是,我尝试对生成的输出进行创意,因为循环迭代不是按顺序进行的。

如果您正在寻找的只是进度指示器,请查看:http://www.mathworks.com/matlabcentral/fileexchange/32101-progress-monitor-progress-bar-that-works-with-parfor

关于matlab - parfor 不打印,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14219676/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com