0
我有一段代碼OpenMP的代碼將等待加入屏障大部分時間
void parallel_func()
{
#pragma omp parallel
{
#pragma omp for collapse(2) schedule(dynamic) nowait
for(i=0; i<N; i++) {
for(j=0;j<N;j++) {
if (i>j) continue; // hack to allow collapse here
//...
}
}
#pragma omp critical
{
//...
}
}
}
使用分析,我發現我的大部分代碼花費...在等待有關OpenMP 加入屏障時 ...任何想法爲什麼?或者如何找出原因?
〜
感謝您的回答。我加了'並行'。我使用了VTune,並且我注意到_all_線程在最後是空閒的,所以它很奇怪。我也刪除了幾乎所有的代碼,並且我得到了同樣的效果。也許它是由VTune添加的一些工件... –