OpenMPと OpenMPIの導入で苦労した話
きっかけ
授業で並列プログラミングの比較をする機会があったので、円周率の計算でどの程度の差がでるかということを試してみた。
今回試すのはCでの並列処理を行う OpenMP と MPI の 2つを試すこととなった。
Mac でこれらをハイブリッドで試すのに OpenMPI が便利ということで入れてみたが苦労した話。
OpenMP の導入
OSX の標準で入っている gcc では OpenMP が動かないらしいので、gcc -5 をhomebrew を使って導入してみた。
調べてみるとMacPorts のほうが簡単に導入できるらしい。
- brew update を行ったあとにbrew doctor を行ってエラーがないことを確認
- 以下のようにしてgcc-5 を導入
- 作ったファイルを次のようにコンパイルする
- gcc ってだけで動かしたい人はシンボリックリンクを張ってください
OpenMPI の導入
- まず、OpenMPIを取ってきて解答する
- wget コマンドとかが使えない場合は以下のサイトから取ってくる
- 次に取ってきた Openmpi のディレクトリに移動して make ファイル(コンパイルの設定ファイル)を作成する
- make ファイルが作成されたので、実行します
- path を通してください bash 使ってるなら以下のような形で設定できます
- 3 で /usr/local/bin に設定した人は /usr/local/bin に設定してね
- mpic++ --version でバージョン確認ができたら入っています
OpenMPI 実行時
- OpenMPIの使い方は調べてもらったらわかりますが、mpic++ でコンパイルして使います
- 実際に実行するときには mpirun で実行します
- 今回 El Capitan の OS 使ってる場合には多分下のようなエラーがでます
-
- これで実行できるはずです
感想
コンフィグの設定とかで苦労しました。あと自分の場合はなぜかシンボリックリンクがうまく貼れない事態とかおこったから、時間がかかってたなあ。(震え)
あと先生のプログラムバグってるの多かったなあ。
参考