如何在parfor循环中使用tic/toc?

Zhi*_* Lu 2 parallel-processing matlab

我的代码目前正在使用该parfor机制运行.但是,如果我想通过使用来计算每次迭代的运行时间tic/toc,MATLAB会以一个响应来响应undefined function error.有没有解决这个问题的方法?谢谢!

ray*_*ica 6

tic并且tocparfor范例中不存在因为tic并且toc是在单个线程上的时间.因为你是并行运行的东西,所以会有线程/上下文切换,因此parfor激活时产生的每个线程的时间将非常不准确......这就是为什么这些命令自然不受支持的原因.但是,您可以在循环放置tictoc命令,并且您将能够计算整个身体执行的时间,但我认为这不是您正在寻找的.parforparfor

相反,你需要做更多的工作.这不是描述你需要做的工作,而是由其他人完成的.您应该在MathWorks文件交换中查看此工具,该工具允许在此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

祝好运!