如何获得程序运行时间 openmp程序
目的:将C语言的串行程序用openmp该为并行程序后,想知道速度提高了多少。用clock()函数不行,因为跟CPU负载有关,每次执行程序运行时间都有点变化。
老师要求比较稳定的方法,就是说和CPU负载无关,能得到一个程序执行的时钟周期数,比较串行和并行程序两者执行时间的比。
先谢谢各位了,发愁啊,听说可以装虚拟机来解决,有晓不得该装什么。望指教。 --------------------编程问答-------------------- 用vtune 测试吧 --------------------编程问答--------------------
额
如果是OpenMP的程序, Vtune Amplifier XE还能给出非常漂亮的图形显示,模块和线程运行的结果一目了然。
--------------------编程问答-------------------- --------------------编程问答-------------------- mark,我最近也在学openmp --------------------编程问答-------------------- 是啊,和楼主有同感啊,每次openmp运行的时间都不一样,时间越短误差越大,我也在想办法...
--------------------编程问答-------------------- 首先并行线程的创建,维护和销毁本身也会有开销的,依赖于宿主操作系统的实现,不可能每次都完全一样吧
有了这些额外的开销,主并行区执行的时间如果太短,自然误差就会很大了。
从测试的角度看,很多时候要求做多次,然后求平均值,这样才会更准确些。 --------------------编程问答-------------------- 同感,必须增大测试部分在程序总时间中的比重,可以多次重复运行待测试部分 --------------------编程问答-------------------- 可以参看博文
CentOS6中OpenMP的运行时间或运行性能分析
http://www.cnblogs.com/diploma/p/openmpclock_gettime.html --------------------编程问答-------------------- 可以参看博文
CentOS6中OpenMP的运行时间或运行性能分析
http://www.cnblogs.com/diploma/p/openmpclock_gettime.html
补充:.NET技术 , VC.NET