我的代码当前正在使用parfor机制运行。但是,如果我想通过使用tic/toc计算每次迭代的运行时间,MATLAB会以undefined function error进行响应。有什么解决办法吗?谢谢!

最佳答案

tictocparfor范式中不存在,因为tictoc在单个线程上计时。因为您正在并行运行事物,所以将进行线程/上下文切换,因此激活parfor时产生的每个线程的时间安排将非常不准确……这就是为什么自然不支持这些命令的原因。但是,您可以将tictoc命令放在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/

10-10 11:12