計画の歴史

目次

前史
対話1
本史
組み立て
対話2
インストール
対話3
調整
メモリテスト
とりあえず安定
16台化

計画前史

2001/4 K7 と P4 評価。この時点では DMA の問題(GRAPE-6のほうの)のために K7 は採用せず。オーソドックスな P4+i850 でいくことにする。

2001/5 "-1"号クラスタ導入。構成は P4 1.7GHz+ASUS P4T+128MB RIMMx2、4ノード

"-1"号クラスタと GRAPE-6の写真

OS は Linux (Slackware 7.1)。インストールは、ベースの機械を作ったあと、そのディスクのダンプと restore コマンド、 restore を動かすスクリプトを NFS サーバに置いて、 Slackware setup で fdisk, target, source と設定した後スクリプトを実行。固定 IP で動かすのでマシン毎に違うファイルはあらかじめ台数分同じ NFS ディレクトリに置き、スクリプトのなかでついでにコピーする。

2001/7 "-1"号クラスタ 8 ノードに拡張。

写真

これは並べただけでまだ組み上がってない。

2001/10-11 P4 が嫌いになったので GRAPE-6 のほうをいじりまわして K7 でまともな性能がでるようにする

2001/11-12 K7 各種マザーボードのテスト。 KT266A が駄目なので愕然とする。しょうがないので AMD761 のマザーボードをいくつか評価。どれでもちゃんと動くので Abit KG7 にする。


学生A: あれですよね。要するに最初は普通に始めたってことですよね。P4 と i850 ってなんか普通。 Socket 423 ですよね。

赤木: まあ、計算用に PC 買うの久しぶりだったみたいだし、そんなものじゃないの?

学生A: でも、だから今のところ PC クラスタを組んだり使ったりする経験なんか大してないわけでしょ?それでこんな偉そうなページ作るなんてなんか恥知らずにもほどがあるとか思いませんか?

赤木: 偉そうなのは君や私も同じよね。

学生A: それはしょうがないでしょう。結局同じ人が書いてるんだから。

赤木: その辺は作者の文章作成や人物造形の能力の問題だと思うけど、まあ人間関係に関する能力が限りなく低いあの作者にそんな大した能力があるはずもないものね。

学生A: そんなことはどうでもいいですけど、まあ、あと、あれですよね。計 算機というかマザーボードとかを選ぶ基準は普通とは違いますよね。 GRAPE がつくかっていうか、つけた時に速く動くかどうかが最優先でしょ?

赤木: と文章には書いてあるわね。でも、あのプロジェクトの総予算を考える とホストにはもっとお金をかけてていいはずだし、そういう意味では本当に最 適なことをやってるのかしら?という気もするのよね。単にオタク趣味に走っ てるだけじゃないのかしらみたいな。

まあ、本人はいろいろ理屈があるみたいで、例えば

GRAPE-6自体はこれから 5 年か 10 年使い続けるので、そのあいだにホ スト計算機は2-3回更新したい、でも予算とか大してないからなるべくホスト はホストで価格性能比がいいものにしておきたい。今のマイクロプロセッサの 進化が続けば、1CPU の機械はそこそこ性能は上がるし多分それ以上に安くな る傾向が続く。だから、安価で価格性能比のよい CPU が使える PC クラスタをホストにするのが今後のためには重要である。
とかいってたわよ。まあ、ねえ、今後のマイクロプロセッサの進化の方向は不 透明だけど、一つはっきりしてるのは、大した進歩はないってことだから。

学生A: 大した進歩はないって、そうなんですか?ここ数年のインテルとか AMD のプロセッサの進歩ってすごいじゃないですか。

赤木: そうだけど、それって高度成長の時の日本みたいな話で、ほかのマ イクロプロセッサに追いついたってだけなの。クロックは確かに上がったけ ど命令レベルの並列度とかは UltraSparc にだって負けてるでしょ。LSI の進 歩って、速度が上がるのとトランジスタが小さくなって沢山使えるようになるの とがあるわけじゃない。今のインテルの方向って、半導体の進歩で速度を上げ るのと、後はパイプラインを深くするとか物理設計で頑張ってもっとクロック を上げるとかしかできてないのよ。

学生A: まあ、それはそうですけどね。でも、とにかくそれでほかの RISC CPU を作ってたところは軒並みやめちゃったわけでしょ?

赤木: うーん、そうかしら?今見るとそういう気がするけど、撤退を決めた時 の理由って、 Pentium 4 とかがこんなに速くなると思ったからじゃないのよ ね。そうじゃなくて、インテルの 64 bit の CPU が出たら対抗出来ないとかい う理由だったの。でも、それ、名前なんだっけ、 Itanium っていうよりいま だに Merced か、それより Itanic のほうが通りがいいかもしれないけど、と にかくその石、結局 UltraSparc にも性能で負けてるんだからもうお話にもならないわね。

学生A: でも、次の石、 Mckinley とかだとちゃんと速くなるんじゃないんですか?

赤木: そうでもないみたいよ。最近でてくる話だと、インテルの公式発表でも 結局クロックが上がった分ともうちょっとくらいしか速くならないみたい。じゃ あ安くなるかというと、Merced とプロセスが同じなんだから駄目よね。

学生A: その次ならでも、、、

赤木: でもね、アーキテクチャを決めちゃえば後は半導体技術の進歩分しか速 くならないのよ。だから、今 Merced が Pentium 4 より遅かったなら、イン テルが両方ともちゃんと開発を続ける限り多分ずっと Pentium 4 の後継のほ うが Merced の後継より速いのよ。だから、インテルは 64 ビットのプロセッサではなにか新しいことを考えないとだめじゃないかしら。

もちろん、沢山売れれば安くできるから、 Windows を使ったサーバとかで McKinley が沢山でれば安くなるかもしれないけど、分散処理ができるような サーバーに使うなら 32 ビットでいいわけよ。 64 ビットプロセッサのメリッ トって、プロセスあたりのメモリ空間が広いってだけでしょ。1プロセスにそ んな広いメモリを割り当てる必然性って、結局科学技術計算とかでないとない のよ。

学生A: そうすると、これからもしばらくインテルとか AMD の 32 ビットの石 なんですか?

赤木: Alpha とか無くなっちゃったし、しょうがないんじゃないの?後は AMD の 64 ビットの石次第だわね。

学生A: そんなものでしょうか。でも、そのへんはともかく GRAPE のホストとか考えた時にインテルとか AMD が本当にいいんですかね。 メモリが変なマザーボードをかってきても 2 GB しかつかないとか、そもそもそういうマザーボードを見つけないといけな いとか、余計な苦労をしてんじゃないですか?先はないっていっても Compaq Alphaserver ES 45 とかで 1 GHz のクロックだと、P4 や K7 より 1CPU あた りでだいぶ速いし、メモリだって 8 GB とか 16 GB とかつくじゃないですか。

赤木: まあ、それはその通り。結局のところは作者は貧乏性で、理屈では 10 倍かかってもいいとなってもやっぱりお金だしたくないのよね。そのうえに P4 か K7 かをうだうだ考えるなんて、プロジェクト全体の進行を考えるべき立場としては論外よね。それよりも、さっさと大きいのを組み上げるとか、使って結果をだすとかやるべき ことは他にあるわけよ。

学生A: まあ、我々がこういう会話をしてるわけだから作者にも自覚がないわけじゃないですよね。

赤木: だから、自覚があるのにちゃんと出来ないってのが駄目なのよ。


計画本史

2001/12/26 九十九から
見積り。

2001/12/27 九十九に発注。足りないもの+忘れてたものを PC 工房に見積り依頼

2001/12/28 PC 工房から見積り。即発注

2002/1/9 PC 工房からFD、グラフィックカード到着。えらい早いな。

2002/1/16 九十九から電話。1/18 に届くとのこと。

2002/1/18 部品の山到着。

2002/1/25 作業開始。

まず、エレクタの棚を組み立てる。これは大学生協に注文で買える。高さ1600 mm。棚板は 900 x 450 mm のもの。これを5段使い、1段に2ノード。4段で8ノー ドとし、上から2段目にモニタ、キーボードその他を並べることにする。

評価用の既に組んである機械をノード0とし、もう一台組み立てる。一応 BIOS update までやる、というか update しないとCPU がまともに認識されない。

2002/1/25 さらに4台組み立てる。

約3時間かかる。もっとも、途中でメモリを挿し損なったのがあってそれがブー トしない理由の解明に1時間くらいロスしたので順調にいけば1台 30 分くらい でいけるはずということになるかな。

1ラック 8 台ともなると配線がなんだかすさまじいものになるのは確か。 なお、ここまでの組み立て手順は以下の通り。

  1. まず、机の上に1台分の部品を揃える。部品は
    1. MB
    2. CPU
    3. FAN+Heatsink
    4. フロッピードライブ
    5. ハードディスク
    6. 電源
    7. 電源スイッチ
    8. リセットスイッチ
    9. グラフィックカード
    10. ネットワークカード
  2. 電源のコネクタをちょっといじる。ボードにいく20ピンコネクタと、HD、 FD用のケーブル(両方がついたもの1本ですます) 以外は使わないので、それら は元々ケーブルを束ねていた輪ゴムをそのまま使ってまとめる。それから、20 ピンコネクタの相手側にひっかかるようになっているところを切断し、簡単に 抜けるようにしてしまう。さらに、 FD 用の電源コネクタも突起をカッターナ イフで削り落とす。

    こういうヤクザなことはしないのが本当だとは思うけど、このへんいじってお くとあとでマザーボード交換とかするのがずっと楽になる。

  3. HD、FDにケーブル、電源ケーブルをつなぐ。ミツミの FD はケーブルが どちら向きでもささるみたいなので間違えないように注意。
  4. MBに CPU、ヒートシンク、メモリ、リセットスイッチ、 電源スイッチを付ける。ヒートシンクはパッドとかついてないやつだったので CPU ダイに当たるあたりにグリスを微量付ける(マッチ棒の頭の体積の 1/10 くらい)。ソケットにヒートシンクを固定する時にはマイナスドライバよりも ボックスレンチを使うのが安全。

    メモリの向きを間違えないように、、、疲れてくると間違えるようである。

  5. MB に HD, FD のケーブルと電源ケーブルをつなぎ、さらにモニタ、キー ボード、マウスもつないでみる。
  6. 電源を入れる。とりあえず BIOS setup に入って CPU の設定が変でない かどうか確認。で、今回の KG7 では BIOS update 用に作ったFD からブート、 BIOS を入れ換える。そうしないと Athlon XP を認識しない。
  7. 無事に BIOS update できたら電源切って MB から HD, FD のケーブルと 電源ケーブルを抜き、ラックにものを移動。MB の下にはひとまわり大きな段 ボールを敷く。これは MBの箱の中仕切りを使った。
  8. ケーブルをつなぎ直し、AC電源ケーブル、ネットワークケーブル等も配 線。
  9. BIOS までは上がることをもう一度確認。
OS とかを入れるのは後でまとめてやることにして、とりあえず 8 台ほど組み 立てることにしよう。

2002/1/27 組み立ての続き。 とりあえず8台まで。3台を2時間でなんとか。 組み上がったところ

沢山写真とったのでリストを作る。


赤木: (組み上がりを見て)ブザマね。

学生A: それって人が違うんじゃないですか?あ、いや、そんなのはどうでもいいんですが、まあ確かに見苦しいといえばそうですね。でも、まあ、そういうことは気にしないというのが作者の主張なんでしょ。

赤木: まあ、美的センスとかそういうのに縁がある感じじゃないものね。

学生A: そうですか、なんかモダンアートみたいでもありますよ。

赤木: モダンアートって、鉄骨に塩をかけて錆びさせるとか、なんかそういうたぐいの?まあ、錆びてないだけましね。

学生A: それってなんか片寄ってますよ、、、


2002/1/29 OS を入れようとする。

PC クラスタの OS の入れかたというと普通は以下のどちらかである。

  1. 組み立てる前にマスターディスクからコピーする。
  2. なんかクラスタマネジメントのソフトを入れて、ネットワークから入れる。
まあ、特に計算機が裸でディスクの抜き挿しも簡単であるということからは、 上の 1 をとればいいわけだが、なんとなくここは変わったことをしてみたい。まあ、単にコピーすると機械毎に違う設定にしないといけない部分があって、そこに手作業が入る。とはいえこれももちろんスクリプトを書いて自動設定は可能なわけで、あんまり本質的な理由というわけではない。

といって、クラスタマネジメントのソフトとかだと使い方がよく分からないの であんまりやりたくない。

というわけで、ここでは以下のような中途半端な方法を使う。基本は、マスター のダンプを NFS サーバ上において、 FD ベースのインストーラが立ち上がったところでそちらからファイルを展開 するというだけである。もうちょっと詳しく書くと、 setup 画面から Source 指定でダンプをおいたディレクトリを指定することでマウントする。 このディレクトリに、基本的にはあとはスクリプト一つですべて済むようなス クリプトと、いくつかの必要なコマンドバイナリもおいておき、これをマシン 番号を指定するくらいで実行すればあとは全部済むようにする。

もうちょっと詳しく手順を書くとこんな感じ。

  1. マスターの機械はとりあえず用意する。なお、 クラスタといっても論理的には研究室のネットワークに普通につながるだけで、 特別にサーバとかを新しく準備するわけではない。なお、面倒なのでパーテッ ション一つに全部のファイルを入れる。 /boot や /usr をわけるとかそうい う面倒なことは考えない。で、このパーテッション全体を dump しておく。最 近の Linux は dump/restore が入ってなかったりするみたいだが、それは適 当にどこかから拾ってきて入れる。ちなみに、後の都合上 restore は static link しておく。
  2. dump は単に
    # dump 0f - / | gzip > /work5/makino/cluster_0/g6host10.dump.gz
    
    みたいな感じ。これは root で実行する。 /work5 は NFS サーバ上にある。 名前が g6host10 なのはマスターの機械がそういう名前だからである。もちろ ん別になんでもいい。
  3. ノード毎に違うファイルをどうするかだが、 Slackware 8.0 の場合、少なくとも私の設定では変更する必要があるファイル は以下の 2つだけであった。
    • /etc/HOSTNAME
    • /etc/rc.d/rc.inet1
    従って、これらのファイルを作るスクリプトを用意する。ものはこんなの:
    #! /bin/csh -f
    #
    # makenewnode.csh
    #
    # usage: makenewnode.csh newnode_id
    #
    mkdir host$1
    mkdir host$1/rc.d
    echo g6host$1 >host$1/HOSTNAME
    (echo NEWHOST $1 ; cat host10/rc.d/rc.inet1)| awk -f editinet1.awk  >  host$1/rc.d/rc.inet1
    
    名前は g6hostxx になることがわかるであろう。あらかじめ host10 というディ レクトリの下に rc.d/rc.inet1 を用意しておく。 書き換えの awk スクリプトはこんなの
       if ($1 == "NEWHOST" ) {
         newiplast = $2+128;
       }else  if (substr($1,1,6) == "IPADDR" ) {
           print "IPADDR=\"192.168.1." newiplast "\"" ;
       }else{
           print $0;
       }
    }       
    
    ノード名の数字 部分に128 を足して IP address の下位ビットを作る。これ はここではそうしたというだけ。これで、各ノードに対応したファイルをを生 成できる。なお、ここではマスターの機械は g6host10 である。
  4. OS のインストールに必要な作業は以下の通りである。括弧内はそれぞれ を実行するスクリプトの名前である。実際にはさらにこれらを順に実行する install.sh というものを作ってある。
    1. ディスクパーテッション作成 (sfdisk.sh)
    2. ファイルシステム作成 (mkfs.sh)
    3. ファイルシステムマウント (mountdisks.sh)
    4. ダンプ展開 (movefiles.sh)
    5. マシン別ファイルをコピー (movefiles.sh)
    6. lilo の実行 (movefiles.sh)
    というわけで、 sfdisk, gzip, lilo, restore をダンプと同じディレクトリ にコピーしておく。 これらはをまとめたものが
    ここ にあるので、もしも同じようなことを やってみたいという変な人がいたならどうぞ。
  5. Slackware のブートフロッピからたちあげて、ネットワークカードを認 識させたあと setup 実行。で、 Source 選択で NFS 先にダンプやスクリプト をおいた場所を指定。
  6. で、 Alt+F2 で別コンソール画面に移り、
    # cd /var/log/mount
    # sh install.sh 11
    
    とかで g6host11 ができる。まあ、時々 y とか リターンとかいれないといけないのがあるかも。
というわけなんだが、ちょっとはまったのは Slackware 8.0 でカーネル2.4.5 のブートフロッピを使った時、 Planex FW-100TX カードがちゃんと動かない ことである。これはまだ対応検討中。 8139too.o とかいう妙なモジュールを ロードするのが悪いのかもしれない。 2.2.19 のほうだと rtl8139.o が普通 に入るようである。が、 mkfs -c にするとこちらはまた膨大な時間がかかる のでちょっと嬉しくない。で、 2.4.5 のほうに rtl8139.o が入ってないかと いうと、これはこれでちゃんと入ってるようである。こっち使えばいいのか な?

というか、 そのへん含めたスクリプトを作っておいてフロッピーに書いて、 それを実行するようにすれば setupも使わなくていい。まあ、そこまでするく らいならちゃんと 1FD Linux をなんか作ればいいんだけど。

2002/1/30 OS 入れるのの続き

ネットワークカードは結局 2.2.19 でも rtl8139 はまともに動かないと判明 したので、そのへんに転がっているいろんなカードをとりあえずつけて OS を 入れる。正体不明の DEC 21140-AF なカード、 via-rhine なカード、Netgear FA-310, GA-620T、Linksys LNE100TX がのったやっぱり知らないカードなど。 どれでも問題なし。やはりRTL8139 は鬼門であったか。まあ、買っちゃったの を使わないのはもったいないというか、どうせそのうちに GbE に変えるからまあいいことにする。

8台作った後起こった問題と対応:

  1. node 6 がなんか知らないけど 2 分くらいで止まる。 MB 交換したら直っ たけど、そういうものなのか?
  2. 何故かネットワークがまともに認識されなくなる。 netconfig をやり直 すと動く、、、、多分 resolv.conf のせいと思われるが未確認。
  3. node 6 が2 分ではないが1時間くらいでやっぱり落ちる。何故だ?
  4. BIOS 設定を fail safe にしておくとおちない?気のせいかな?ちょっ と 負荷をかけて様子を見てみよう。
/etc/sudoers と /etc/suauth を適当に設定して、自分のアカウントか らいろいろできるようにしてしまう。2重に隔離されているとはいえ、よくないのは確かなんだけど。

node 6 がまだ落ちるなあ。 MB の問題でも NIC でもないとすると、まだ交換 されてないのはメモリと CPU か。メモリも変えてみますかね。


赤木: なんだかやってることがとろくさいわよね。もうちょっと手際よくできないものかしら。

学生A: まあ、もともと Athlon+Abit KG7 というあたりがすでに無謀なんだか ら、こんなふうになるのは当然という気もします。8台中7台も動いたんならラッキーでしょ。 AMD761 って、でた頃か ら安定性には問題があって、最初はメモリ2枚しかつかないようにしてあるマ ザーボードがほとんどでしたから。それに4枚付ける基板ってのは、どんなも のかと思います。同じ 760 でももうちょっと普通のにしとけばいいのに。

赤木: まあ、その辺バカよね。

学生A: まあ、どうしても 2 GB 積みたかったんじゃないですか? Unbuffered で 2GB 乗るボードなんか他にないじゃないですか。

赤木: そうだけど、そういうところでいじましくお金をけちらないで registered でもなんでも買えばよかったのよ。

学生A: えーと、でもよく考えてみるとまだメモリのせいかどうかわかんないですよね。もっと別なところの不良かもしれないじゃないですか。

赤木: それはそのとおりね。メモリ自体、変えてみるとか減らしてみるとかやっ てみないといけないことはいろいろあるし、他のところもちゃんと調べないと いけないわよね。まあ、とろいなりに少しはなんか考えてんでしょ。

学生A: とは思いますけど、、、

赤木: だいたいネットワークカードだってわざわざいい評判を聞いたことがな い Realtek 8139 がのってるカードを、それと知ってて買うんだから、、、

学生A: でも、あれ安かったみたいだし、インストールの時に動かないだけで 後は問題ないし交換も簡単だったから大したことはないと本人は言ってました よ。

赤木: うーん、でもまたあとでなんかトラブルになるんじゃないかしらね。

学生A: すぐにギガビットに交換するつもりだったみたいだし、まあこれ はいいんじゃないですか?

赤木: ギガビットのはまともなのを買って欲しいものよね。ほら、平木先 生のとこの院生さんから SysKonnect のがいいってデータがきてたじゃ ない。それでも Planex とか玄人指向とかのを買いたそうにしてたわよ。っとに学習能力がないんだから。

学生A: Planex のは NS 83820 だし、Tigon だかの GA620T より性能が でるみたいだからそう悪くないんじゃないかと思いますよ。玄人指向はなんだ か知らないですけど。同じ石使った GA621T より安いですし。

赤木: そうかもしれないけど、まともなのを買えばいいのに。


2002/1/31 調整

朝になるとノード 1,2,6 が落ちている。

夕方までセミナーなのでそれから作業開始。まず、メモリを減らしたり別のにしたりしてみる。驚くべきことになんの効果もない。だめじゃん。

というわけで以下の2つを試みる。

  1. FSB を下げる。 116 MHz にしてみた。
  2. メモリへの供給電圧を上げる。元は 2.65 V だったのをとりあえず 2.75 V にしてみる。
どちらも効果があるようである。FSB を下げるのは悲しいので、ノード 1, 2, 6 は全部 2.75V にしてみる。寿命が減るかもしれないけど、そのころには容量が大きいのに交換するだろうし。

いじりまわすにはやはり裸の構成は便利である。ラックに収納されたままの状 態で(これは収納されているといえるのかという意見はあるかと思うが)メモリ を抜き差しできるんだもんね。

と、それはいいとしてまだ落ちるではないか。ノード6だけみたいだけど。ちょっ と追求も大変な感じになってきているので、とりあえずは全部交換することにしよう。 それでも動かないとすれば場所とかケーブルとかが悪いということになるかな。 まあ、とりあえず交換するのが早いだろう。続きは明日。

2002/2/1 調整続き

調整の続き。

で、ノード2がいつまでたっても落ちないので、 FSB Clock を 140 MHz にあ げると、、、うーん、これで 4 時間たっても落ちないのか。

とはいえ、やはり落ちますね。これもとりあえず交換することにしよう。 明日は 4-7 を -1 号(P4 1.7GHz) に代わって G6 のホストにすることにする。

2002/2/2 調整続き/G6 接続

ノード2 も入れ換えた。もちろん何事もなかったように動く。これで一通りで きたということで、GRAPE-6 につなぐことにする。まずは -1 号クラスタの半 分を置き換える。 置き換えると、、、 ありゃ、動かないぞ、、、というか、答を間違えるんですが、、、

いきあたりばったりにいろいろやってみる

どれも動作が変わることは確かだが間違えることには変わりがない。結局 FSB clock を 120 MHz まで落としたところ間違えなくなった。なんじゃ?

とりあえずnode 0 につけて今日は作業終了。FSB Clock 125 MHz。 が、この後で GRAPE-6 の設定ファイルを間違えていたことが判明。もう一度 テストしないと。とはいえ、速度は P4 1.7GHz (gcc) に比べるとかなり速く なって嬉しい。粒子数が少ない領域ではほぼ 1.5 倍速い。

2002/2/3 調整続き/G6 接続

うーむ、 node 0 は 125 MHz で動くのにそれ以外のはやはり 125 MHz でも答 を間違えるではないか。しょうがないので 120 MHz に落とす。

しかし、それでも大粒子数で数分計算すると微妙に答を間違える。FSB Clock を 100 MHz にすれば PCI が 33 MHz でも答が合う。これはどうも変ではない か?

2002/2/4 調整続き/MEMTEST-86

なにが変かというと、 FSB Clock を変えてもGRAPE の動作は変わっていない はずなのに答が間違ってくるということである。これには少なくとも以下の3 つの原因が考えられるであろう。

  1. ホストの主記憶が誤動作している
  2. ホスト CPU が誤動作している
  3. それ以外の何か
とりあえず、メモリがまともかどうかをみたい。Memtest86とかいうものが世の中にはあっ たような気がしたので(google で memtest-86 でそれらしいページを見つけ た)、これをダウンロードする。 Slackware 8.0 では make ; make install で FD にブート可能なイメージができる (/dev/fd0 のパーミッションが 適切である必要はある)。で、これをいれてブートすると勝手にテストプログ ラムが動くわけだが、、、

どれもこれも途中でこけるということが判明。 KG7 を使ったノードは多数あ るが、テストしたものは全滅。 FSB を落とすと多少先までいくが、110 MHz でも全部のテストは通らない。KG7-Lite に 256MB のメモリを一つだけつけた 箱があって、それは全てのテストをパスした。

マザーボードの問題か、あるいは3個つけてるのが悪い(これはまあ確かに悪い) のかを確認するため、 KG7-Lite に 512MBx2 をつけてテスト。なかなか驚く べきことにこれも通らない。これで FSB clock 120 MHz にするとだいぶ通る。

つまり、現状では手持ちの KG7 と手持ちの 512MBx2 の組合せでは FSB 133MHz で Memtest86 が通らないわけである。1 GB で駄目なんだから 1.5GB でももちろん駄目である。とりあえずしょうがないので 1GB にしてテストが通るか どうか見ることにする。

GRAPE-6 のテストのほうは、 1.5GB つけても FSB clock 110 MHz ならかなり 安定はする。しかし Memtest86 が通ってないということはいつ計算間違いを しても不思議はないわけで、ちょっとこれでは使えないわけである。 256MB のメモリをつけた時には 120 MHz で答が合う。133MHz では動かなかったがこ れは DMA 関係のパラメータに不備があったので、もうちょっと調整すれば動 くかもしれない。

が、そもそもメモリが 1GB 付けると 133MHz ではどうせ動かないのであった。


赤木: KG7 早く捨てればいいのに。大体そういうこともあるかと思って安いのを買ったんじゃなかったのかしら?

学生A: まあ、GbE とか使おうと思うとPCIが 64bit でないとお話にならない みたいだし、そしたら AMD 760 なんか使えないですもんね。 K7 用だと 確か760MP か MPX だけですよね。

赤木: そね。まあ、賢い人ならちょっと高くても MPX で信用できるマザーボー ドを買うところね。作者はどうせもっとバカな選択をするに決まってるけど。

学生A: 明日なにしてるかですよね。


2002/2/5 調整続き/MEMTEST-86

Memtest86 だけど、結局 KG7 はメモリ 1 枚でも通らない。Memtest86 がなに か悪いという可能性もあるが、 KG7-Lite では1GB つけても(FSB clock を 120 MHz まで落とせば)通るし、GA7DXR と GA7VTXH は 1.5GB 133MHz でなん の文句もいわないので、やはり KG7 が悪いのである。

もうちょっとメモリタイミングとかいじってみるが、結局だめ。 FSB100MHz なら動くのもある?というくらい。

まあ、やはり GA7DXR につけかえですね。ちょっとそれ以外の解はないぞ。 明日何枚か注文しよう。 A7M266 でもいいけど、あんまり売ってないし。

2002/2/6 調整続き/MEMTEST-86

注文もいいけどとりあえずテストのために GA7DXR を 2 枚ほど導入。 Kingston のモジュールではエラーがでないようである。 GRAPE-6 でももちろ ん答を間違えたりはしない。ふう。まあ、もうちょっと様子をみないと。

Kingston でないの(M-tec と書いてあるの)では、、、なんかエラーがでるよ うな。モジュールの個性か、組合せでなんとかとかそういう問題か。 モジュール表面のパターンをみると明らかに M-tec のはパターンがはいまわっていてよろしくなさそう。インピーダンス整合とかとれてるのかってのと、あとスタブ 長が明らかに長すぎるような気がする。さらには、パスコンの数も少ない。 例えばこ こにのってるマイクロンのモジュールみたいに、モジュールの上部にパス コンがついていて、表面にあまり配線がはいまわっていないのが正しい6層基 板の PC2100 DIMM であるらしい。 Kingston や Transcend のはそうなってる。 M-Tec のはなんなんだろう?

これは良く考えてみるまでもなく変な話。 DDR DIMM って JEDEC かなんかの 推奨 PCB パターンがあったはずなので、全然違うのが2種というのは割合あり そうにない。 言い換えると、出来が悪そうなパターンのは怪しい。とはいえ、 これも GA7VTXH だとmemtest 通るんだよな。

このあとどこかから眠っていた A7M266 も発掘する。これは実はよさそうな 256MB モジュールで memtest 通らない。 FSB 124 MHz まで落とすと M-tec の怪しいモジュール2枚(A7M は 2 スロットしかない)で動くようになる。

KG7-Lite と KG7 でなにか違うのだろうかとよくよくみてみると、 CPU まわ りについている電解コンデンサの大きさが激しく違う。何故か KG7-Lite のほ うが大きいのがついているのである。どうもこのあたりの影響による電源の安 定性の違いが動作に影響しているように思われる。

と、問題はそういうところではなく、 M-tec のメモリをどうするか。AMD760 なマザーのなかで圧倒的に信用できるのは GA7DXR であるという結論に到達し たけど、これは M-tec では動かないのである。クロックをおとせばいいんだ が、 FSB:PCI のクロック比を 4:1 に保って FSB clock を 133MHz 以下に落 とす方法が発見できない。 125 MHz くらいで動くと PCI Clock が40MHz を超 えるのでちょっとさすがに不安である。

いろいろマニュアルにない設定とかもやってみるが、良くわからんので断念。 133MHz で動かす方法を考える。どちらのボードでもエラーアドレスが低いの で、モジュールの場所によるのではという推測の元に CPU に近いスロットの だけ Kingston にしてみる。これが一応正解のようで、とりあえず動く (memtest が通る)ようになったようである。

2002/2/7 調整続き/MEMTEST-86

駒場で使わないという MSI KT266Pro (VIA KT266A) をもらってくる。何故か これは PIO write が速い。 DMA read も速いので使おうと思えば 使える。で、 GA7VTXH は同じチップセットで M-tec メモリが動くので、これ でも動くかと思ってのせてみると驚くべきことに(ということもない)動かない。 で、 Kingston の正しいメモリならなんの問題もなく動く。 (この辺、「動く」ってのは memtest86 がエラー出さないで終わるという意味 ね)

で、混ぜて差したのもやはりエラーを出す。結局、M-tec のメモリで動くのは

というところになる。問題は、下の2つは PIO write も DMA write も遅いの で GRAPE-6 のホストとしては現状では使えないということ。KG7-Lite, A7M266 は 1GB が上限なのでやはり避けたい。大体クロック落とさないと動か ないってのはいまいちである。 KG7 は 1GHz の Athlon ではなんと快調に動 いたが、クロック倍率可変の MP1600 で 1.05 GHz では動かない。

GA7DXR は動くが、 FSB を133 MHz より少し下げるという設定では PCI のク ロックが上がりすぎるのでちょっとだめ。これは MSI KT266Pro も同様で、 「オーバークロック」する設定しかないのである。まあ、115MHz くらいまで 下げると動くとは思うが。一応そういう解もある。

なんかあきてきたので、方針を考える。

というのがとりあえず正解であろう。 GA7DXR と正しいメモリ、あと Gigabit NIC か。

以下、負け惜しみ。まあ、MB を交換しようがメモリ半分がゴミになろうが、 Intel P4+RIMM な構成にくらべれば圧倒的に安い。 P4+SDRAM は安定しては動 くと思うがさすがに性能的には問題。 P4+DDR は i845D では安定して動くか もしれないけどこれはやはり2 スロットとかなので。

とはいえ、K7 用の DDR マザーボード and/or DDR メモリがこんな恐ろしいものとは。 GRAPE-6 つけないなら AMD760 のボードは避けて、もっと新しい KT266A を使った無難なボードにすればいいんだけどね。しかし、M-tec なメモリの山が、、、 SiS745 と ALi MAGiK 1 Rev C は KT266A よりは PCI がまともらしいし、念のためテストしておくかな。

Athlon XP 1800+ が FSB 133MHz の定格で動くと、私のプログラムに限った話 では Intel P4 1.7GHz の1.8倍くらい速い(gcc 2.95.3で)で、EV6 667MHz でCompaq C++ を 使った時にくらべて(GRAPE-6 を使うプログラムの場合)ほとんど変わらない。 使わないただの計算だと Athlon のほうが 3 割くらい速い感じ。GRAPE-6 を使うと遅いのは 64bit int の演算が遅くなるせいなので当面やむをえない。

2002/2/9 K7S6A!

例によって秋葉の九十九でマザー導入。目標は ECS K7S6A (SiS 745) と Iwill XP333 (ALi MAGiK1 Rev C)。どちらもものはあったが、 XP333 は基板 のバージョンが 1.0 だった(最新は 2.1)ので断念。こうコロコロバージョン が変わるのはなにかあるにきまってるもんね。

で、 K7S6A だが、前バージョンの K7S5A (SiS735) は、性能はともかく安定 性やあたりはずれについてはおよそよい評判を聞いたことがない(なんか DRAM 配線のインピーダンスがどうたらという話まであったような)のでアレではあ るが、 SiS 745 のボードはいまのところこれしかないのでやむを得ない。と にかく DDR333 対応なのでメモリバス回りのタイミングには余裕があるはずだ し、例の VIA KT266A の PCI performance bug 情報では SiS 735 は KT266A に比べればはるかにましらしいのでちゃんと動くかもというあわい期待でテス トするわけである。

実は前に K7S5A はテストしようとしたことがあって、それはそもそもブート さえしなかったのでそのままほってある。それからいろいろ悪い評判を読んだ のでそのままになっていた。

というわけでなにも考えずにボード交換。ラックの一番上のA7M266を外す。と りあえずメモリは M-tec 512MB 1枚。 memtest の 5,6。 お、 通るではない か。で、 Linux 上げて DMA の性能を見る。 read 75 MB/s, write 40 MB/s. write が遅いが使えないレベルではない。テスト用コードを動かしてみ ると、もっとも差が大きいところで GA7DXR に比べて 10% 程度遅いだけ。こ れなら使える。

というわけでメモリ 1.5GB にして、 memtest を extended にして今日はおし まい。明日エラーでてないといいな。


赤木: あーもう、ここまでバカと知らなかったわけじゃないけど。なんかもう感心するわね。

学生A: 地雷を踏むとか人柱になるとか実は好きなんですかね。「なるべく手 間をかけないで」っていうのはどうなったんでしょうね?

赤木: どっちかいうと手間かけまくってるのよね。ボード交換とかメモリ交換とかはとっても簡単とかいばってたけど。なんか勘違いしてるんじゃないかしら。


2002/2/10 K7S6A 続き

さて、こわごわ画面をみると、、、 no error である。素晴らしい。

というわけで、クロックをあげてみようかと BIOS 設定画面に。現在の設定は と、、、ありゃ、 FSB/Memory/PCI が 133/100/33 ではないの。何故こいつは こんな設定が、、、というか、FSB と memory が非同期だから PC2700 が使え るんだけど。これは Memory 133 にしたら動かないかな?とか思いながらそち らに切換え。とりあえず GRAPE-6 がまともな性能がでることを確認。という か、 同じクロックのGA-7DXR より速い。STREAM でも結構違う。ほう。と、そ れはいいんだけど、 memtest ではやはり 5 番でエラー。 124/124/31 に落と してみる。まあ、 133/100/33 で使えるので M-tec メモリが有効に生かせる ことは確かだな。

2002/2/12 K7S6A 却下

まあ、K7S6A は割合ちゃんと動くんだけど、、、レビュー 記事とか見てると「チップセットのヒートシンクが両面テープで貼ってあ るだけ」というなかなか衝撃的な事実が。たかがチップセットとはいえ、ノー ス・サウス統合だからCPU バスもメモリバスも PCI バスもドライブするわけ で、そんなのを両面テープ、、、 ECS のどこかには熱設計という言葉をしらない生産 技術者がいるわけだ。

SiS745 はタイミングにも余裕があるみたいだし新しいだけにメモリ周りもよ いしさらに GRAPE-6 をつけてちゃんと動くという結構なしろものなんだけど、両面テープとかをみるとマザーボードメーカーの技術力には疑問を感じざるをえない。

というわけでマザーボード選定は、、、 745 なら MSI の 745 Ultra を待つ。で、九十九がメモリ交換してくれるならその分については GA-7DXR(+) を買うというのが正解ですわね。

2002/3/1 とりあえず安定

えらく久しぶりの更新になったが、そのあいだなにもしていなかったわけでは もちろんないというかいろいろいじりまわしていたんだけど、 結局大きな変更はホストのほうにはしていない。以下、簡単にやったことのま とめ

  1. GRAPE-6 のほうの調整。組み立てと、バーンインによる不良モジュール の検出・交換とか。 これが結構大変であった。
  2. ホスト構成の変更。結局現在は K7S6A 5 台、 GA-7DXR 2 台、 7350KDA 1 台。なんか邪悪な構成かも。
  3. KG7 は完全にお蔵入。今使っているのは Athlon 1.2G をのせてファイル サーバにした1台のみ。まあ、 Duron をつけてみて動くようなら GRAPE 使わ ない計算用のサーバにでもするかな。
で、新たに組み立てた GRAPE-6 20 枚ともともとあったうちの 12 枚を 8 ノー ドにつけて一応使える体制にした。16枚はまだ -1 号な P4 についているので これも新しいノードを組み立てないといけないけど、ちょっと保留。まだマザー ボードが足りないし。

なんとなく不安な K7S6A だが、これが実は妙に安定して動いている。 K7S5A があまりに評判悪かったので少しはまともなものを作ったのかしら? SiS 745 は 735 にあった無数とも言われるバグも減っているようで、 GRAPE のほうの 不良つぶしが終わったこともあって嘘のように快調に動いている。 まあ、 DXR も一応問題なく動いてはいるけどね。

P4 4台が空いたので、そのうち1台を Kernel 2.4 にして icc を動かしてみる。 うーん、やはり私のプログラムは依然として gcc+K7 のほうが圧倒的に速い、、、 K7 (1800+ を FSB 248 MHzで) で 3.2 秒かかるものが、 P4+gcc で 5秒、 P4+icc (-xW -tpp7) でも5秒、P4+icc (-tpp6) では 10 秒くらい。 tpp6 に くらべて速くなっているんだけど、それでも依然として gcc+K7 に比べると 1.5倍くらいかかる。ちゃんと xmm レジスタとかが使われていて SSE2 を使っ てはいるみ たいなんだけど、、、

まあ、構造体を適当に使っててあんまり速度のことを考えてはいないコードだ からしょうがないのかも。icc は配列をなめるようなコードでないとだめかな。

tree code だと差がもうちょっと小さいけど、しかしやはり K7 のほうが速い ことに変わりはない。

2002/3/8 K7S6A 到着

九十九に注文していた K7S6A の山(12枚)と XP1700+ 6個(1800+ より安定して動く気がするのでこちらにしてみた )が到着。単価はそれぞれ 11,999 と 16,979。しかしメモリは相変わらず高いなあ、、、

2002/4/2 16台化

というわけで16台化する。右の小さいラックでも8台のった。左のは 900mm x 450mm、右のは 750mm x 300mm かな。新しいほうだけの写真。フットプリントが小さくなるように電源やディスクドライブが立っているのがわかる。マザーボードは全て K7S6A である。何故か今回分は FSB 133 MHz で 1GB メモリでメモリテストが通っている。 CPU は 1700+ と 1800+ がまざっている状態。ちなみにマザーボードの下にしいてあるのはA4の古雑誌とか紙束である。

とりあえず GbE カードはさしてあるんだけど、ハブがこない、、、予定していた Netgear の GS524T は去年 11 月発売だったはずが6月まで出荷延期になっている。現在 516T があるかどうか調査中。これがないととりあえず 508T をカスケードするしかない。