我是OpenMP的新手,我試圖編寫一個帶有並行for構造的小程序。我無法理解我的程序輸出。我不明白爲什麼線程3在1和2之前輸出輸出。有人可以給我一個解釋嗎?for「for」循環的OpenMP輸出
所以,程序是:
#pragma omp parallel for
for (i = 0; i < 7; i++) {
printf("We are in thread number %d and are printing %d\n",
omp_get_thread_num(), i);
}
並且輸出是:
We are in thread number 0 and are printing 0
We are in thread number 0 and are printing 1
We are in thread number 3 and are printing 6
We are in thread number 1 and are printing 2
We are in thread number 1 and are printing 3
We are in thread number 2 and are printing 4
We are in thread number 2 and are printing 5
我的處理器是英特爾(R)核心(TM)的i5-2410M CPU有4個核。
謝謝!