Right-Weight Kernel

ん、RightじゃなくてLight、軽量カーネルだろ。これだから日本人は"L"と"R"の区別ができないって言われるんだと思うのは、早合点で、ここでは「Right」で正しい。

前回のエントリでPlan9がBlueGene/Lで動いたと書いたが、IBMにオフィシャルなプロジェクトページができている.ここで提案されているのがRight-Weight Kernel (RWK)である。

RWKの(まず最初の)ターゲットはHPC分野。HPCアプリケーションは、計算、通信、ファイルI/Oといったフェーズにわかれることが多く、これらのフェーズをなるべく干渉せずにオーバラップして最大の性能を引き出すことが求められる。LinuxのようなHeavy-Weight Kernel (HWK)は機能が豊富だけどオーバヘッドが大きい。一方、CN/K (BlueGene/L の Compute Node Kernel)のようなLight-Weight Kernel (LWK)は計算することしか考えてないので、ファイルシステム、ソケットやセキュリティがないなど、機能が貧弱。そこで、これらの二つのアイデアを折衷したカーネルを作ろうというのが、RWK。RWKのベースとなっているのがPlan9だ。

BlueGene/Lは、I/OノードではLinuxが、計算ノードでは(上記の)CN/Kが動いている。ちなみにフルスペックのBlueGene/Lは計算ノードを65536ノード持ち(1ノードにはdual corePowerPC 440が2つ搭載されている)、64x32x32のトーラスネットワークでインターコネクトされている。CN/Kには2つの動作モードがあって、CPUあたり1プロセスがスケジュールされるバーチャルノードモードと、片方のCPUが非プリエンプティブなスレッドを実行し、もう片方のCPUは通信処理に専念する通信コプロセッサモードが存在する。BlueGene/LはMPI専用計算機だと考えて間違えないと思うが、MPIを動かすにはコプロセッサモードの方が性能が出るようだ。RWKプロジェクトでは、これを分散OSであるPlan9で置き換えようとしている。

次のRon Minnich氏のプレゼン資料も面白い。

メガコアクラスタの時代が来ている。でも、誰も1MのRHEL boxesを欲しいなんて思わない。カーネル + remote exec デーモンでも不十分。欲しいのは軽量でかつフル機能のカーネルPlan9 on BG/Lは4人x4週間でポート完了(PowerPC 405用のInfernoをベースにした)。性能のためにOSをバイパスする理由なんてはっきりしないよね、全ノードのMACアドレスがわかるのに、なんでARPが必要なのと、ハードウェアが信頼性とフロー制御をサポートしているのにスライディングウィンドウプロトコルなんて必要なのとか。既存のBG/Lソフトウェアでは、アプリから直接ハードウェアを叩く(計算ノードの場合)か、重いソケット、TCP/IPスタックを使う(IOノードの場合)かが完全にわかれている。Plan9なら、9Pベースの共通インタフェースを提供し、かつハードウェアの性能も出すことができる。Acidでリモートデバッグもできる。

Plan9には共有ライブラリがないけど、共有ライブラリを実現するためにPythonを使っているとも書いてある。

中途半端で使い物にならないというありがちな結果になるか、成功を収めるのか、今後が楽しみ。

で、汎用京速計算機はスカラ型とベクタ型の折衷案。