シンプルなCプログラムでOpenMPを試してみました
test() {
for(int i=0;i<100000000;i++);
}
main() {
printf("Num of CPU: %d\n", omp_get_num_procs());
#pragma omp parallel for num_threads(4)
for(int i=0;i<100;i++) test();
}
でコンパイルg++ -fopenmp
。4 つの CPU があることを正しく出力できますが、すべてのテスト関数は で実行されていthread 0
ます。
を改造してみましたOMP_NUM_THREADS
。しかし、それも効果がありません。
オンラインの例と同じものがすべてありましたが、なぜ機能しないのですか?