電子計算記

個人的な検証を

3. MPIクラスターを作ろう! - OpenMPIをインストール

前回のつづきです。
2. MPIクラスターを作ろう! - MPI何にする? - 電子計算記

では、まずは1台仮想マシンを作成しましょう。
仮想マシンの作成は、本題ではないので既存のマニュアルにまかせます。

www.idcf.jp

オンラインマニュアルの他、クイックガイドもあるので、お好みの方をどうぞ。

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

無事動きました。とは言え、毎回長いオプション入れるのも面倒なので、素直に警告にしたがい
次回はユーザー作成し、テスト用のコードを実行していきます。

fujish.hateblo.jp