gpt4 book ai didi

matlab - 以编程方式确定是否在 parfor 与 for 循环内执行

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

在开发 parfor 循环时,通常最好从串行循环开始,以使用小数据集进行测试,然后添加“par”以扩展到大样本集等。串行运行时,获得关于以下方面的诊断信息非常好for 循环的每次迭代但是,当使用 parfor 循环处理大量数据集诊断信息时,应该关闭。

所以问题是:有没有什么方法可以通过编程检测是在 for 循环还是 parfor 循环中执行?这种方式可以像 if ~isParfor; fprintf(...);结束

最佳答案

您可以使用未记录的命令 feature('isdmlworker') 来确定代码是否正在工作程序上运行。如果在 worker 上运行,它返回 true,否则返回 false。请注意,虽然此命令已经存在很长时间并且看起来很稳定,但理论上它没有记录并且可能会发生变化。

或者,您可以使用文档化的 usejava('desktop'),如果您使用 MATLAB 桌面运行,它返回 truefalse 否则( worker 就是这种情况)。这非常接近于成为一名 worker ,只要您有时不在没有桌面的情况下运行 MATLAB 本身(即使用 -nodesktop 选项启动它)。

另请注意,如果您不启动工作池,parfor 会像 for 循环一样在本地运行,因此这两个都将返回 false - 我想这可能是您想要的,但无论如何都值得注意。

关于matlab - 以编程方式确定是否在 parfor 与 for 循环内执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26508880/

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