CPU 100%
昨日は近所のスーパーで冷凍食品が45%引きの日だったので子供のお弁当用にたくさん買い込みました。私が子供の頃も合成着色料とかいろいろ危うそうなのがありましたが、いまもってこういう問題はなくなりませんね。それはそうとして、スーパーでは月に一度冷凍食品の大幅割引の日がありますが、これが理にかなったプロモーションなのかいつも不思議に思います。少なくとも私はこの日にしか買いませんから。
さて最近の High Performance Computing の環境としては、PC クラスタと呼ばれるコモディティの製品を多数並べるタイプのものが多く使われます。歴史的にはベクトル計算機が以前は主流で、それから Massively Parallel Processor (MPP) と呼ばれる専用機や Unix サーバーが主流になり、そして PC クラスタになっています。このグラフは Top500 にエントリしている計算機のアーキテクチャの変遷で、2000年頃から急激に PC クラスタの割合が増えています。
PC クラスタは比較的廉価なので、ノード数を簡単に増やせるのですが、ノード数を増やすと当然電気使用量も増えます。なので PC クラスタを調達する時に、調達するノード数を決めるのは予算額ではなく、そのマシンを設置する場所の電気容量だとよく言われます。つまりお金はあっても電気が足りない、という理由でノードが調達できないこともあります。
昼間は ITpro EXPO の展示説明員で、もう疲れてよれよれですが、夜は調布のマシンで遊んでいます。Windows HPC Server 2008 のベータ版のバグをなんとか掻い潜り、全43ノードへの展開が終わりました。まずは Top500 でコンピュータのランク付けに使われている Linpack を流しています。小さい問題サイズでは全ノードを使ってちゃんと流れて軽く 1TFlops (一秒間に一兆回の計算)を出しました。さあ、それではメインイベントと最大サイズで全ノードを使って Linpack を流すと、、、電源のブレーカが落ちてしまいました。電源容量が足りなかったようです。
HPC 以外のアプリケーションでは全 CPU の稼働率が 100% の状態が長く続くということはありません。なので普通は電源の設計でも全ノードの全 CPU が稼働率 100% の状態が何時間も続くとは想定しません。しかし HPC ではそれが当たり前で、HPC では CPU を休ませることなどありません。今回は残念ながら HPC でのこうした CPU 負荷について考慮されていなかったようで、電源が足りませんでした。
Windows Server で HPC をやることのメリットの一つとして、他のファイルサーバーやデータベースサーバー、ウェブサーバーなどに使われている Windows Server と同じツール、ノウハウで HPC 用のマシンも管理できるということがあります。しかし管理ツールなどでは設定の際に注意が必要です。たとえば Windows Compute Cluster Server 2003 には Microsoft Operations Manager (MOM) の管理パックがあって、MOM を使って CCS のノードを管理できますが、デフォルトで使うと HPC のアプリケーションの実行中に CPU 負荷率が 100% の状態が長く続くと「異常」と判断してしまうので、こういう状態を異常と認識しないように設定を変えてやる必要があります。
Linpack を流すのは今回のように新しいシステムを導入した時が多いですが、これはそのシステムの性能を測るというだけではなく、システムに負荷をかけて初期不良を見つけたり、今回のような電源の確認をすることも目的の一つでもあります。ですので、ブレーカは落ちましたが、来週以降の一般公開前にそれが判明したことは幸いであったと思います。