オタクof数理の共同ブログ

京大情報学科数理工学コースの学生4人による共同ブログです

MacOS X El CapitanでC言語のOpenMPによる並列計算を行う方法

並列計算とは、簡単にいえば、同時進行できる計算を複数のCPUのコアに同時に計算させてしまおうと言う試みである。

gccでは、新しいバージョンでしかOpenMPがサポートされていないため、homebrewで最新版のgccをインストールする。

$ brew install homebrew/versions/gcc6

homebrewによってインストールしたgccは、gcc-6という名前になっているので、gccと書いてコンパイルできるようにシンボリックリンクを作成する。

$ sudo ln -sf /usr/local/bin/gcc-6 /usr/local/bin/gcc

ついでにg++も

$ sudo ln -sf /usr/local/bin/g++-6 /usr/local/bin/g++

サンプルコードをコンパイル・実行して、Hello, World!が複数表示されればよい。

#include <stdio.h>
#include <omp.h>
int main()
{
#pragma omp parallel
 {
   printf("hello world from %d of %d\n",
	  omp_get_thread_num(), omp_get_num_threads());
 }
 return 0;
}
$ gcc -fopenmp -o hello hello.c
$ ./hello