3. MPIクラスターを作ろう! - OpenMPIをインストール
前回のつづきです。
2. MPIクラスターを作ろう! - MPI何にする? - 電子計算記
では、まずは1台仮想マシンを作成しましょう。
仮想マシンの作成は、本題ではないので既存のマニュアルにまかせます。
オンラインマニュアルの他、クイックガイドもあるので、お好みの方をどうぞ。
https://www.idcf.jp/help/cloud/guide/pdf/IDCFCloud_installation_guide.pdf
さて、この仮想マシン作成時に、ポイントがあります。
リージョンは、東日本リージョン2を選んでください。
オールフラッシュストレージや低レイテンシーのネットワークが利用できます。
マシンタイプは、必要なスペックを選んでくれればよいですが、以降はLight.S1で進めます。安いから。
イメージは、先のとおりUbuntu16.04での例です。
ボリュームは、追加なしのそのままで大丈夫です。
SSH Keyは新たに作成してください、この後使いまわします。
仮想マシン名はcompute-1という名前で作成します。例の中でもこの名前を使います。
仮想マシン作成後は、上記マニュアルを参考にしつつSSHで接続してください。
SSH接続後、まずはOSをアップデートし、OS再起動しておきます。
root@compute-1:~# apt update root@compute-1:~# apt upgrade -y root@compute-1:~# reboot
再度SSH接続後、以下のとおりOpenMPIをネットワークインストールします。
root@compute-1:~# apt install openmpi-bin libopenmpi-dev -y
以上終了です、超簡単ですね。パスも通ってるのでほんとにこれで終了です。
libopenmpi-devも入れたので開発環境も入りました。
一応、実行可能か確認しておきます。
まずはコンパイラから。
root@compute-1:~# mpicc --version gcc (Ubuntu 5.4.0-6ubuntu1~16.04.5) 5.4.0 20160609 Copyright (C) 2015 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
gccにラップされてるので、gccのバージョンが出てくれば成功です。余談ですが、mpicc自身のバージョンは
root@compute-1:~# mpicc --showme:version mpicc: Open MPI 1.10.2 (Language: C)
と確認できます。
次に、実行環境を試してみましょう。
root@compute-1:~# mpirun --version mpirun (Open MPI) 1.10.2 Report bugs to http://www.open-mpi.org/community/help/
これでだいたい実行できることは確認できたので、mpirun越しにノード内でコマンドを実行してみましょう。
オプション-np 1として1プロセス動かし、試しにhostnameコマンドでホスト名を出します。
root@compute-1:~# mpirun -np 1 hostname -------------------------------------------------------------------------- mpirun has detected an attempt to run as root. Running at root is *strongly* discouraged as any mistake (e.g., in defining TMPDIR) or bug can result in catastrophic damage to the OS file system, leaving your system in an unusable state. You can override this protection by adding the --allow-run-as-root option to your cmd line. However, we reiterate our strong advice against doing so - please do so at your own risk. --------------------------------------------------------------------------
するとrootで実行するなと怒られます。今回は動作確認したいだけなので、オプション入れて回避します。
root@compute-1:~# mpirun --allow-run-as-root -np 1 hostname compute-1.cs30idcfcloud.internal
無事動きました。とは言え、毎回長いオプション入れるのも面倒なので、素直に警告にしたがい
次回はユーザー作成し、テスト用のコードを実行していきます。