linuxでOpenMP並列プログラミング1

corei5 のcpuで動かしています。まずは環境設定

virtual boxで仮想化しているので、その設定
34
設定 -> システム -> プロセッサーから最大の4コアを指定します。

それ以上を選択しても無効となります。下のPAE / NXはメモリー関係です。関係ないのでスルー。

cpuを確認
$ cat /proc/cpuinfo 
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 61
model name : Intel(R) Core(TM) i5-5257U CPU @ 2.70GHz

processor : 1
vendor_id : GenuineIntel
cpu family : 6
model : 61
model name : Intel(R) Core(TM) i5-5257U CPU @ 2.70GHz

processor : 2
vendor_id : GenuineIntel
cpu family : 6
model : 61
model name : Intel(R) Core(TM) i5-5257U CPU @ 2.70GHz

processor : 3
vendor_id : GenuineIntel
cpu family : 6
model : 61
model name : Intel(R) Core(TM) i5-5257U CPU @ 2.70GHz

こんな感じで4つ認識していたらOK

 //gcc openmp0.c -o openmp0 -fopenmp

#include <stdio.h>
#include <omp.h>
int main()
{
   #pragma omp parallel
   {
     printf("Hello World! \n");
   }
}

$ ./openmp0
Hello World! 
Hello World! 
Hello World! 
Hello World! 

コア数分の4回Hello World!が出た! 
ここから並列プログラミングが始まります。