我使用下面的命令在程序的可用線程並行化一個循環:的OpenMP指定的線程數循環迭代
#pragma omp parallel for num_threads(threads)
for(long i = 0; i < threads; i++)
{
array[i] = calculateStuff(i,...);
}
由於技術上的原因,我想保證線程編號0執行i=0
,並且線程編號1執行i=1
。換句話說,我總是想要i=omp_get_thread_num()
。這可能嗎?
我認爲你是對的。顯然openmp是默認的。我的程序中有一個錯誤,導致我看不到這個。謝謝。 –
§2.7.1循環構造:當指定schedule(static,chunk_size)'時,迭代被分成 爲大小爲chunk_size的塊,並且將這些塊以循環方式分配給組中的線程按照線程號的順序。「即該標準確實需要它。 –