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