漢なら CentOS7 で InfiniBand で MPI を動かしたいですよね!
動かしましょう!
- OpenMPI
- InfiniBand(IPoIB 設定済み)
- firewalld による IP ファイアウォール(iptables サービスではない)
を仮定します.
SELinux
まず, /etc/selinux/config
を編集し SElinux を disable する.
(SElinux を有効にしていると, firewalld を切らない限り動かない模様)
一旦リブートします.
Firewall 設定
firewall で MPI で使う interface を trusted ゾーンに移す.
$ sudo firewall-cmd --permanent --zone=trusted --change-interface=ib0
1024-65535/tcp のポートを開放する.
$ sudo firewall-cmd --permanent --zone=trusted --add-port=1024-65535/tcp
もしくは, interface が public から移せない場合(e.g. ether ネットのみ)は, public で 1024-65535/tcp のポートを開放する.
(より正確には OpenMPI が利用するポートだけ開放すればよいはず)
$ sudo firewall-cmd --permanent --zone=public --add-port=1024-65535/tcp
firewalld をリロードして設定を反映.
$ sudo firewall-cmd --reload
OpenMPI インストール
openmpi をインストールする.
$ sudo yum install openmpi
$ sudo yum install openmpi-devel
/usr/lib64/openmpi/bin/
に PATH を通しておく.
ssh 設定
compute nodes に master node の ssh public key を known hosts に追加し, 自動ログインできるようにしておく.
$ mpiexec -host 172.24.0.8 ls
で compute node の IP を指定してコマンドが実行できれば成功です!
Happy MPI computing!