2003/11/7 Opteron 設定編
学生A: 今度はどんなことをするんですか?
赤木: 今回のは今のところ GRAPE とは関係ないの。 H さんの科研費で普通の PC クラスタをっていうのを、なんか自分がやるとかいって組むことにしたの ね。
普通に Dual Opteron で Rioworks HDAMA マザーにメモリ 4G とか 8G とか付けるみたいよ。
OS はもちろん Linux なわけだが、 AMD64 をサポートしているディストリビュー ションは Turbo と SuSE くらいしかないはずなので、とりあえず Turbo を入 れてみる。これは人が使う機械なので独立に yp server にするわけだが、そ の辺で既にはまる。 Turbo は割合セキュリティにうるさくて、 ypserv が tcp wrapper を通すとかそういうふうになっているわけだが、これがもちろん というかなんというか良くわからない。 /etc/hosts.allow に
ypserv:ALLとか書いても駄目。とりあえずなんでも通す設定で OK。あれ、 portmap もつ ければ良かったのかな?で、 turboservice とかいうのを使って自動起動にす ると、 ypserv も ypbind も起動に失敗してくれるので、 /etc/rc.local に 書いてしまう。起動の順番の問題なことは明らかなわけだが、、、
クライアントのほうもなかなか謎。 domainname を誰がいつどこで設定するの か良くわからないので、これもとりあえず rc.local でごまかす。後、 /etc/yp.conf とか /etc/sysconfig/network (NISDOMAIN=...とか書く) をそれらしく設定する必要あり。
と、この辺を解明するのに結構手間取る。
OS のインストールは、今回は福重君から借りた秘密兵器、PC 抜きでハードディ スクのコピーをする機械を使う。 NIS サーバーの設定をまずもう一台にコピー して、それが無事にクライアントになったところで後はどんどんコピーするだ け。
とりあえず、今日は4台コピーができた、、、のかな?
で、組み立てたマザーに電源、キーボード、マウス、ビデオの切換えケーブル をつけて電源を入れると、、、2台目が立ち上がらない。色々調べた結果、 CPU1 のメモリスロット 2/3 にメモリを挿さないと上がる。マザーの不良か電 源容量の不足かは調査中。とりあえず 6GB で動かすことにする。これは3台し かない 8GB 搭載機のはずだったんだが、、、
ちなみに、 HDAMA の eth0 は後ろから見て右(ビデオコネクタから遠いほう)である。これ はマザーの取扱い説明書では 1/2 とある 2 のほう。
明日は残りの4台の設定等。
2003/11/8 Opteron 設定編の続き
DHCP とかで設定するわけではなく固定 IP をマシン毎に設定しているので、
HD をコピーしただけでは駄目でいくつかの設定ファイルを書換える必要があ
る。
あと、MPI を入れる必要があるけど r 系コマンドがないぞ、、、 ssh で MPI
を動かせというのか?なんか面倒だ。
まあ、その辺はおいておいてとりあえずハードディスクのコピーと設定。これ
は特にトラブルなく、、、と思ったら、そうでもない。昨日 8GB でブートし
なかった子が、ディスクをつけて Linux 上げると途中でカーネルパニックす
る。メモリをどんどん抜くと、、、、とりあえず2GB だとブートするけど、、、
これあかんね。うーむ。
まあ、とにかく8台立ち上げるのが先ということで作業を進める、合間に PGI
Fortran のインストールと設定、、、と思ったら、ソフテックのドキュメント
を見ると SuSE でしかインストールできないと書いてある。もちろんそんなの
は無視してインストールをする。
と、途中で glibc のバージョンが違うとかいう感じのエラーでインストール
してくれない。どこで止まっているか調べてみると、 makelocalrc とかいう
ものが呼ばれてその中で止まっている。 /lib の下に libc があると思って探
しているが、 Turbo では /lib64 の下なのでそこを修正。これを 2 つある
makelocalrc の両方にやると、特に問題なく動くようになる。なかなか素晴ら
しい。
でも、簡単なテストプログラムを走らせると ifc でコンパイルしたほうが圧
倒的に速い、、、ちょっと悲しいかも。
後、作業としては
さて、科研費の名目とはずれるが、やはり K8 がきたからには GRAPE-6 がつ
くかどうかが問題である。というわけで、とりあえずデバイスドライバをコン
パイルしてみようとすると、良くわからないエラーがでる。試しに 2.4.22 カー
ネルをひろってきて、それがモジュールをコンパイルする時に付けてるオプショ
ンをつけて、さらに __x86_64 があるので __i386 の代わりにこれを使うよう
にすると、、、 おお、コンパイルしますね。
ちなみにオプションはこんなの
で、 insmod すると、、、入りますね。では G6HIB を挿してブート、、、カー
ド認識もしてる。 DMA の動作テストするプログラムを動かすと、、、お、と
りあえずクラッシュしないで終わった。でも速度がでないんですが、、、
write 75MB/s read 50MB/s くらい、、、まあ、 AMD だとそんなものかな
あ、、、
やはり nF3 か K8T800 のほうがいいかな? Via は PCI 回りは、、、 KT266
は×だったけど KT400A は悪くなかった。というか 8237 の出来が問題なのか。
あれ、それはいいけど(今家で書いてるわけだが)ブレーカ落ちたかな? file
server 1台も返事しない、、、かなりやかも。20A では足りないか?だとする
と 200V から取るようにしないと駄目か。3号館あと1年ちょっとだから電源工事したくないしな。
とりあえず r 系が動くようにするには、、、 xinetd なので、
/etc/xinetd.d の下の shell, exec, login で disable = no にして xinetd
に HANGUP シグナルを送る (kill -HUP pid)。
次はMPICH のインストール。 gcc ではこけるので pgcc で挑戦。ここをみ
ながら
2003/11/9 Opteron 設定編の続きの続き
大学に来るとやはりブレーカが落ちている。まあ、ファイルサーバが壊れてな
かったのがラッキー。これを別系統に移してブートすると、、、あれ、1台ファ
イルシステムが破壊されてら。 結構軟弱、というかデフォルトが ext2 なの
ね。 Ext3 に変えればもうちょっといいかな。
とはいえ、今日はファイルサーバーの設定、、、ということで、買ってあった
USB2 ハードディスクをつなぐ。電源入れてからつなぐともちろん hotplug と
いうか murasaki が動いて認識してくれるわけだが、つないだ状態で boot す
ると、、、えーと、認識してるんだけど何故か一旦認識した後モジュールを外
してしまう。ディスク1台ならいいみたいなんだけどなあ、、、
とはいえ、とりあえず mkfs して、、、と思うが、妙に遅い。良く(というほ
どのことはなく)みると USB1 でつながっている、、、ありゃ?と思って
HDAMA の取扱い説明書を見ると、これは USB1 しか載ってないと書いてある。
しょうがないので秋葉原までいって USB2 のカードを買う。 Greenhouse
GH-UIP205 1680円であった。
で、速度はでるようになったが依然起動時には勝手にモジュールが外れる。カー
ネルの設定の問題かなあ?と思って素の2.4.22 カーネルを適当に入れると、、、
大当たり。妙なことはしないでちゃんとディスクを認識する。でも、
miurasaki.call とかをいじっても自動マウントはしない。どうせ電源いれっ
ぱなしでブートするんだからと、これも rc.local に書く。ちなみに、最近の
Linux のマウントは LABEL=xxx というのができて、これは e2label で書く。
例えば、
後は設定してなかったファイルを色々サーバーからコピー。この辺
と思ったら、ルータがちゃんと動いてくれないような。あれ?間違った設定を
してるとは思えないが、、、家の新しいのはちゃんとできてるし。うーん、バ
グ?
まあ、とりあえずはまだ外からは見えなくてもいいか。
後は HPF が動いてくれれば完了。
しかし、 MPI の通信性能を測ってみると、、、11 MB/s、、、あ、違う、これ
は 100BT のハブが入ってるからだ。そうじゃなくてちゃんとGbE のハブ一段
だと、、、
2003/11/15 ネットワーク周りなど
人が使う機械なので外から見えるようにする必要がある。地球シミュレータみ
たいに使う人は来いというほど偉いわけじゃないから。で HDAMA には GbE ポー
トがそもそも 2 個ついているから、一つをパブリック側につないでおけばい
いんだが、なんか設定が面倒な気がしたので御家庭用ルータの port
forwarding を使ってみようかと思う。が、これがなかなか失敗で、今使って
いる Planex BLW-04EM では port forwarding が何故かうまく動いてくれない。
家で使っている BLW-04FM では出来ているのに、、、というわけで、2ポート
使う構成に変えたら、今度は default route がどうしても設定できない。何
故?
というようなことをしていて面倒になったので、家のと同じものを買ったつも
りで BRL-04FM を導入。良く見ると違うものだがまあ大体同じで、無事に
port forwarding も動く。一体何故?
まあ、ssh 以外の全てのポートを閉めるとか、そういうのが簡単に設定できる
のは悪くない。
これで後は使う人のアカウントを作って、それからなんだっけ?どこに何があ
るか書かないと駄目か。
と、これくらいか。 MPI までは明日くらいにはできるだろ。 Turbo なんだか
ら MPICH くらい入って、、、と思ったら、あれ、そういうのはないのか。ま
あ、いれればよかろう。
CFLAGS = -D__KERNEL__ -I/usr/src/linux/include -Wall \
-Wstrict-prototypes -Wno-trigraphs -O2 -fno-strict-aliasing \
-fno-common -fomit-frame-pointer -mno-red-zone -mcmodel=kernel -pipe \
-fno-reorder-blocks -finline-limit=2000 -fno-strength-reduce \
-Wno-sign-compare -fno-asynchronous-unwind-tables -DMODULE -nostdinc \
-iwithprefix include -DKBUILD_BASENAME=pcimem -D__SMP__ -DEXPORT_SYMTAB \
-c -o $@
まあ、ほとんどはいらないと思うけど。
119 1:43 configure --with-device=ch_p4
--prefix=/opt/mpich/1.2.5.2/pgi-p4 -c++=pgCC -cc=pgcc -fc=pgf77
-cflags="-Msignextend -DUSE_U_INT_FOR_XDR -DHAVE_RPC_RPC_H=1"
-opt=-fast -f90=pgf90
120 1:44 make
これで make できた。SMP 2 CPU で通信させてみると、、さすがに 300MB/s
くらいはでる。というかそれしかでないのか?という気もするけど。SMP 分
についてはなんか仕掛けがある設定に MPI のほうをする必要があったかな?
e2label /dev/sda1 /usbdisk1
とかして、 /etc/fstab には
LABEL=/usbdisk1 /home1 ext3 noauto 0 0
と書いておけば、これが仮に /dev/sdb1 とか sdc1 になってもちゃんと
/home1 にマウントされる。ふむ、 USB ディスクには極めて便利な機能ですね。
/etc/sudoers
/etc/group
/etc/hosts.allow
/usr/bin/sudo
/etc/hosts.equiv
/etc/xinetd.d/shel
/etc/xinetd.d/exec
/etc/xinetd.d/login
sudo はなかったのでとりあえず Vine のをコピー。で、こんな感じのスクリプトを各ノードで実行
cd /
scp makino@hanawa0:/tmp/files-to-copy.tar /tmp
tar xvf /tmp/files-to-copy.tar
/etc/rc.d/init.d/xinetd restart
cat << EOF >> /etc/fstab
hanawa0:/home1 /home1 nfs bg,rw 0 0
hanawa0:/home2 /home2 nfs bg,rw 0 0
EOF
cat /etc/fstab
mkdir /home1
mkdir /home2
mount /home1
mount /home2
hanawa0 はサーバーノードの名前。 automount 使うようにしたほうがいいか
なあ?
で、 hanawa0 は外からの見えるように、、、
まあ、 Intel chip ほどはいかないとはいえ、随分いいではないの。