我想衡量每个线程花费在执行代码块上的时间。我想看看我的负载平衡策略是否在工作人员之间平均分配块。通常,我的代码如下所示:
#pragma omp parallel for schedule(dynamic,chunk) private(i) for(i=0;i更新我在gcc中使用openmp 3.1
1> Gilles..:您可以用这种方式打印每个线程的时间(未经测试,甚至没有编译):
#pragma omp parallel { double wtime = omp_get_wtime(); #pragma omp for schedule( dynamic, 1 ) nowait for ( int i=0; i注意,the
nowait
会barrier
在for
循环结束时删除,否则将不会引起任何兴趣。当然,使用适当的分析工具是一种更好的方法...