Raspberry Pi スパコン (2)


2023年 01月 05日

OS

ラズパイを繋げてスパコンのようにして使うには、色々設定をしないといけない。

まず、ラズパイのOSについて、基本的なことは知っておいたほうが良い。Linux系のDebianをベースにしたOSで、名称は以前はRasbianと言っていたが、今はRaspberry Pi OSというのが正式になっている。でも、特殊なことをしなければ、普通のLinuxと思って差し支えない。

まず、8台のマシンを設定するのだが、2台(マスター、ワーカー各1台)だけで調整し、後はワーカーのmicroSDカードを複製して、違いの部分だけちょこっと書き換えるのが楽で良い。つまり、最初は、ラズパイ2台構成のスパコンを作ることを目指す。そこから先は、microSDカードのコピーと、微修正だけで台数を増やすことができる。

最初のmicroSDにRaspberry Pi OSを入れるところの説明は省略する。最新のバージョンでは、デフォルトユーザのpiがなくなり、必ずユーザ名を指定しなければいけなくなっている。とりあえず、ここでは、この最初に指定するユーザ名を昔通りのpiを指定したものとして書いている。

さらに最初は、マスターマシンだけを作り、あれこれ設定が終わってからマスターのmicroSDをコピーし、ワーカー用に書き換えることで作ると作業の無駄が減る。

固定IPアドレスとホスト名

固定IPアドレスにしなくても動くのだが、参考書『Raspberry Pi でスーパーコンピュータをつくろう!』に従って、固定にした。マシンは、クラスAのプライベートIPアドレスに置くことにした。アドレスの範囲は10.0.0.0~10.255.255.255 (10.0.0.0/8)であるが、ネットワークの運用指針に沿ってIPアドレスを選ぼう。

まず、マスターマシンに、ネットからRaspberry PI OSを取ってきて、microSDに書き込む。ネット上には、書き込みに利用するPCの種類に応じたものが用意されている。

書き込まれたmicroSDをラズパイに挿し込み、電源を入れるととりあえず起動するはずである。最初は、ディスプレイ、キーボードを、マウスをラズパイに繋いで操作する。初期設定やソフトのインストールもあるので、ネットワークにも繋ぐ。

起動したら、メニューから、設定→Raspberry Pi の設定 を選んで設定を変更していくのだが、その前に、IPアドレスをどのように割り振るかを決めておかないといいけない。

ホスト名(マシン名)もテキスト通りに、RP0〜RP7を使うことにし、RP0がマスターマシンで、RP1以降がワーカーマシンとした。

各マシンに、/etc/hosts というホスト名とIPアドレスの対応表を直接書いておくことにした。

これを、個々のラズパイに書き込むとともに、ラズパイスパコンにリモートからアクセスできるように、パソコン側にもこの表を突っ込んでおく。

固定IPで適当に使うだけなら、DNSを使わないこんな横着な方法もある。

最初は2台だけなのだが、とりあえず最終的な台数の8台に合わせる。まだ接続していないラズパイは無視されるだけなので、問題なし。

127.0.0.1    localhost
10.129.0.40    RP0
10.129.0.41    RP1
10.129.0.42    RP2
10.129.0.43    RP3
10.129.0.44    RP4
10.129.0.45    RP5
10.129.0.46    RP6
10.129.0.47    RP7

設定

ラズパイの様々な設定は、GUIでできるようになっている。
メニューで、設定→Raspberry Pi の設定 で、ラズパイの設定ウィンドウが開く。
システムでは、ホスト名を変更できる。

インターフェイス・タブを選ぶと、様々なインターフェイスのON/OFFができる。最初は全部有効になっているはずだが、使わないものは無効にして無駄なトラブルに見舞われないようにするべきである。

ここでは、SSHとVNCだけを有効にしておこう。

SSHは、スパコン構成に必須の機能なので、有効にする。

VNCは、パソコン上にラズパイのデスクトップを表示するリモートデスクトップの機能に欠かせないので有効にする。直接スパコンには関係ない機能であるが、使い慣れたPCのディスプレイ上でラズパイを操作する方が便利である。ふつう、ラズパイスパコンはPCの隣ではなく、少し離れたところ、別の机の上にあったりするので、いちいち移動するのが面倒である。

パッケージのインストール

インストールすべきパッケージが多数あるので、1台のうちにインストールを済ませておこう。

$ sudo apt install  パッケージ
パッケージ:build-essential, manpages-dev, gfortran, nfs-common, nkf-kernel-server,
           vim, openmpi-bin, libopenmpi-dev, openmpi-doc, keychain, nmap

のコマンドでインストールできる。