さて、前回はCentOS のインストールまででしたが、今回はシステムまぎちゃんの大事なアプリケーションになる、OpenMPI のインストールまで書きたいと思います。
私は、ラズパイを純粋な計算機として扱っています。ですので、ゴテゴテした GPIO とか USB がどうのこうの、といった話は一切出てきません。
ちなみにシステムまぎちゃんは、某アニメに出てくる 3 台のスーパーコンピュータになぞらえて作成するものです。
システムまぎちゃんは基本的に4台のラズパイからなります。
- コントローラー(マスター):1台
- 計算サーバ(スレーブ):3台
ですので、コントローラと計算サーバではちょっと設定が違ってきます。
まずは、コントローラの設定。コントローラには 64 GBytes の USB フラッシュドライブを搭載しました。
これを各スレーブと NFS で共有するホーム領域とします。
はじめに fdisk をおこなった後 mkfs でフォーマットします。次に blkid コマンドで UUID を取得します。
USB はその特性から、再起動のたびに /dev 以下の名前が変更になる場合があるので、UUID を取得するのは
大変重要です。
# fdisk /dev/sda
d
n
w
# mkfs.ext4 /dev/sda
# blkid
取得した UUID を使って /etc/fstab に一行書き加えます。
# vi /etc/fstab
#以下を追加
UUID=44a8d2f4-450e-48b5-b76e-91e6b69160af /home ext4 defaults,noatime 0 0
では、本題に移ります。まずは YUM の EPEL リポジトリを登録します。話は簡単です。
ここに書かれているとおりに実行します。
$ cat > /etc/yum.repos.d/epel.repo << EOF
[epel]
name=Epel rebuild for armhfp
baseurl=https://armv7.dev.centos.org/repodir/epel-pass-1/
enabled=1
gpgcheck=0
EOF
リポジトリの記述ができたなら、次は YUM のアップデートをおこないます。OS はいつでも最新がキホンです。
$ yum update
でもってリブート。・・・の前に、せっかくリブートするのだからもうひとつ、タイムゾーンの変更もおこなっておきましょう。
# ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
# reboot
その次に、
ここまできたら、あとはひたすら MPI のインストールをおこなえばオーケーです。MPI で普段使われているものとして 2 種類あります。
ここでその差異を述べるのは控えますが、
- MPICH
- OpenMPI
どちらもほぼ同一のコマンド体系を持っていますのでどちらでもいいのではないかと思います。
今回は、OpenMPIを入れてみます。
# yum install -y openmpi openmpi-devel openmpi3 openmpi3-devel gcc-c++ wget rpm-build bzip2-devel openssl-devel zlib-devel autoconf automake libtool make hdf5-openmpi hdf5-openmpi-devel hdf5-devel hdf5 man2html freeipmi-devel lua-devel mariadb-devel pam-devel readline-devel rrdtool-devel ncurses-devel gtk2-devel hwloc-devel libssh2-devel pmix-devel openssl perl-ExtUtils-MakeMaker which
ちょっと長いですが、私の初期の記述から掘り起こしてみたところ、こういう結果になりました。
これは、後ほど入れる tarball のために入れているものがほとんどです。
あとは、もう 1 回リブートして終わりです。
# reboot
今回はここまで。次は ジョブスケジューラやバッチシステムと呼ばれる SLURM のインストールを目指します。
参考 URL:
https://wiki.centos.org/SpecialInterestGroup/AltArch/armhfp