我的代码当前正在使用parfor
机制运行。但是,如果我想通过使用tic/toc
计算每次迭代的运行时间,MATLAB会以undefined function error
进行响应。有什么解决办法吗?谢谢!
最佳答案
tic
和toc
在parfor
范式中不存在,因为tic
和toc
在单个线程上计时。因为您正在并行运行事物,所以将进行线程/上下文切换,因此激活parfor
时产生的每个线程的时间安排将非常不准确……这就是为什么自然不支持这些命令的原因。但是,您可以将tic
和toc
命令放在parfor
循环之外,并且您可以计时整个parfor
主体执行的时间,但是我认为这不是您所需要的。寻找。
相反,您需要做更多的工作。无需描述您需要做的工作,而是已经由其他人完成的。您应该在MathWorks File Exchange上查看该工具,该工具允许在parfor
循环中进行计时:http://www.mathworks.com/matlabcentral/fileexchange/27472-partictoc/content/Par.m
有关如何使用此工具的示例,请参见:http://www.mathworks.com/matlabcentral/fileexchange/27472-partictoc/content/html/Example_Script.html
祝好运!
关于parallel-processing - 如何在parfor循环中使用tic/toc?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24856693/