19 に、インフィニバンドネットワークは安くなる
かなあみたいな楽観的な話を書いたわけですが、それから2年半近くたった
今でも 10Gbps 程度のネットワークは相変わらず高価です。これは結局
10GBASE-T がまだ普及まできていないことによります。
まあ、来年くらいにはその辺なんとか、という気もするわけです。実際、
10GBASE-T の製品は Broadcomm, Intel あたりから出荷は始まっています。
が、この辺の会社が売っているうちは国内価格で 10万円はきらないわけで、
なかなか大変です。スイッチのほうも、 Fulcrum の1チップスイッチが
去年発表されているのでそろそろ安くなってもいいような気がしますが、
これは安いカードがでてきてからもうちょっと先になるでしょう。
GRAPE-6 を作ってた時に GbE カードがやはりそんな感じで、2001 年の段階で
はまだ全く買える値段ではなかったのですが、2001年度終わりくらいにはカー
ド価格が2万円程度、その次の年には数千円になったりマザーにのったりして
いました。スイッチも、2002年度初めだと 24 ポートが40万(出荷遅れてまし
たが、、、) と、買える値段になってました。
100BT は、DEC 21140 のボードは 1995年頃にはぼちぼちあったような記憶があ
るので、100BT が普通になってから 1000BT が普通になるまでは 7 年かかって
います。ですから、 1000BT から 10GBASE-T までにさらに7年というのはそん
なものでしょう。「ネットワークの速度の向上は計算機の速度向上よりも速い」
といったことがまことしやかに主張されていることがありますが、値段あたり
ではそんなことは全然なくて、100倍になるのに 14年かかる、ということです。
また、電力消費当りの通信速度では向上はもっと小さいと思われます。という
わけで、後知恵で見ると 10GbE がなかなか普及しないのはまあ当然なのです
が、 HPC にとってはこれはなかなか問題です。 GbE
はバンド幅、レイテンシともにあまりに性能が低いからです。
価格は安いので、例えば 5本とか 10本とか並列にできればバンド幅の問題は解
決可能ですが、10本もマザーボードにつける安価な方法がない、というのが問
題です。また、バンド幅がなんとかなったとしてもレイテンシは特にスイッチ
が入るとどうしようもなくて、イーサネットの場合 cut-through のスイッチな
んてものは存在しないに等しいのでパケット長に応じてそれなりのレイテンシ
がスイッチステージ毎に必ず発生します。さらに、イーサネットは適当な規格
で、ルータで衝突が起きたらパケットを落としてもいいよ、というものなので
なかなか使うのは簡単ではない、というような問題もあるわけでです。
結局、 GbE が安くなった後でも、バンド幅ではそれほどメリットがなかった
Myrinet 2000 や Quadrics Elan が HPC マーケットでは高いシェアを維持で
きたのは イーサネットの規格、スイッチの実装に HPC 用途では問題があるか
らです。
このことは、 10GBASE-T が今年終わりや来年あたりに安価になったとしても、
なかなか HPC 用としては使いにくいままである、ということと、このために
QsNetII や IB の値段は高いままに止まる、ということを意味しそうな気がし
ます。
そのような状況下で、もうちょっとネットワークをなんとかできないか、とい
うことをここでは考えてみます。
普通のマザーボードを使って PC クラスタを作ることを考えると、一つの方法
は高速なネットワークカードを作ることです。頑張って安い FPGA を使えば材
料コスト5-8万円程度で 20Gbps 程度のインターフェースがついたカードを作れ
なくもありません。但し、スイッチも別に作るとなると大変過ぎるし値段もあ
がるので、スイッチが不要な1次元や2次元のメッシュやハイパーキューブといっ
た構成を考える必要があります。
もうひとつの方法は、マザーボードに既についているインターフェースや、安
価なカードがあるインターフェースを使ってスイッチ側だけを作ることです。
大抵の PC のマザーボードには USB 2.0 や SATA IIといった高速シリアルイン
ターフェースが載っています。 USB 2.0 は 480Mb/s であり高速というのは
ちょっと厳しくなりましたが、その代わり来年くらいには 3.0 になって
5-6Gbps になる模様です。 SATA は現行で 3Gbps、SATA 3.x では 6Gbps で、
これも今年から来年にかけてになる(USB より多分先にでる)でしょう。
Seagate は既に SAS 6Gbps をサポートする Savvio 10K.3 をアナウンスしてお
り、SATA でもそんなに遠くないでしょう。
SATA 6Gbps 6 コネクタとかをサポートするマザーボードでは、計算上は
3.6GB/s にもおよぶディスク転送速度がでることになって、主記憶が例えば
DDR3 1600 2 チャネルで 25.6GB/s だとして名目はその 15% 近くになります。
まあ、どっちも実効で半分くらいとすれば比率では変わらないわけです。
そうすると、 USB 3.0 や SATA 3.x で接続する HPC 向けの安価なネットワー
クスイッチ、というものを考えることができます。
USB 3.0 はまだしばらく先で、 SATA はターゲット側を開発するためのデザイ
ン例が(特に FPGA用が)殆ど存在しない(SOC 用は Synopsys が
発表したば かり)で、簡単には使えないというのが一つの問題です。
SATA-PATA の変換チップはいくらでもあり、 PATA なら低速・安価な
FPGA でも容易に実装できるので、スピードに問題はあるにしても開発はできます。
USB や SATA を使うまでもなく、どうせシリアル信号である PCIe 自体を延長
できないか、という気もしますが、これは現状では受信側でイコライザが必要
になるようでどうしてもノード1つにボード1枚を追加する必要が発生します。
USB や SATA のメリットは、マザーボードにケーブル接続に対応したコネクタ
が既に沢山ついてくることです。また、追加のポートも非常に安価です。
従って、スイッチを、スイッチ単価は結構高くてもポート単価が低いものにで
きれば、総合的には非常に安価なネットワークを構築できる、と計算上は
なるわけです。 SATA-PATA 変換部分は安価なモジュールを買ってくればよい
ので、PATA デバイスインターフェースが沢山ある FPGA ボードを作ればそれ
でよいわけです。 Acard AEC-7923 辺りは安いのに、規格上存在してるかどう
か疑問な PATA 200MB/s なんてものをサポートしてます。 PATA だと双方向同時で
はないと思われる (SATA は原理的には双方向同時が可能なはずですが実際に
サポートしてるかどうか不明ですが、、、)のでそんなに速くはないかもしれ
ないですが、使いかたとして双方向同時がどれか必要かというのはまた簡単な
話ではないので。
まあ、こういう話はいつもあって、 5-10 年前だと IEEE 1394 で、という話も
研究レベルではありました。が、 1394 にはそのままでネットワークを構成で
きるというメリットがあったものの、速度が今一つとか USB 2.0 につぶされ
たとか色々あったわけです。 SATA は 10GbE に価格当り速度で負けることは
なかなかなさそうなので、かなり魅力的なネットワーク方式になりえるように
思います。