2014-03-04 35 views
0

我試圖執行以下代碼, 雖然我知道「語法上」有序的構造應該出現在for循環中,但爲什麼代碼在有序子句內被刪除,即執行應該給我一個直接的「語法錯誤」。爲什麼下面包含有序「構造」的openmp代碼不執行?

omp_set_num_threads(11); 
#pragma omp parallel 
{ 

// 1 

#pragma omp ordered 
{ 
    printf("\n%d ",omp_get_thread_num());//this statement is not getting executed 
}//ordered omp pragma 

}//parallel omp pragma 

在// 1 print語句成功 我甚至試圖刪除ompgetthreadnum(),但仍無濟於事。

回答

1

#pragma omp ordered可能只出現在#pragma omp for ordered構造內。

Source

+0

謝爾蓋,那麼就應該給我的語法錯誤 ;我想問問爲什麼這個代碼卡住了! –

+0

@ PuneetS.Chauhan它被困住了,因爲你的openmp編譯器沒有意識到它不是一個「並行的」有序結構,但是你鏈接的openmp庫正在等待適當的同步信號。 –

相關問題