Blue Gene/Lの1ラック
Blue Gene/Lの構成図。この図のCabinetが1ラックに相当する。
Blue Gene (ブルージーン )はIBM のスーパーコンピュータ プロジェクトである。
Blue Geneプロジェクトは1999年に発表され[ 1] [ 2] 、第1世代はBlue Gene/L [ 3] 、第2世代はBlue Gene/P [ 4] 、第3世代はBlue Gene/Q [ 5] である。Blue GeneはPowerPC 系のプロセッサ を多数使用したHPC クラスタで、TOP500 やGreen500 、HPCCアワード などのスーパーコンピュータ性能ランキングの上位を占めている。
IBMでは1997年にチェスの世界王者ガルリ・カスパロフ に勝利した「Deep Blue の子孫」と称している[ 6]
概要
Blue Gene プロジェクトの最初のコンピュータである「Blue Gene/L」は、1億ドル の費用をかけてピーク性能で360T FLOPS を目指し、ローレンス・リバモア国立研究所 と共同で開発された。この目標は日本製の旧地球シミュレータ の実効性能35.86TFLOPSの10倍の速さである。2010年までにピーク性能1P FLOPSの「Blue Gene/P」、2010~2012年には10PFLOPSの「Blue Gene/Q」の開発を目指した。
特徴
プロセッサ
Blue Gene登場前のスーパーコンピュータでは、専用のベクトルプロセッサ やx86 、POWER などの高性能なプロセッサ を数十個から最高で数千個搭載するものが中心であった。Blue Geneプロジェクトでは、一つ一つの性能は高くないプロセッサを最高で数十万個以上搭載し、並列実行 するプログラム数を格段に増やすことで高い性能を実現する設計を採用した。
ネットワーク
メッセージパッシング 、同期 など並列アプリケーション特有のプログラミング 手法を支援する独自のコンピュータネットワークを搭載している。
導入・管理コスト
発熱の低いプロセッサの採用や周辺回路の1チップ化によって、設置面積、消費電力、冷却に必要な空調設備などに要するコストを低く抑えている。
システム構成
Blue Geneは、システムとしての最小構成となるラックを必要に応じて複数接続することでユーザが求める性能を提供する。そのラックは、1プロセスを実行する最小単位となる計算ノードを複数個搭載しており、各ノードはコンピュータネットワークによって接続されている。
歴史
ローレンス・リバモア研究所のシステム
2004年11月に発表された第24回Top500リスト[ 7] において、スーパーコンピュータ向けベンチマークLINPACK におけるBlue Gene/Lの実効性能は70.72TFLOPSとなり、地球シミュレータを抜いて当時の世界最速のスーパーコンピュータとなった。当時はまだ搭載CPUコアが32,768個であり、ベータ版という位置づけであった。
その半年後の2005年6月、Blue Gene/LはCPU数を65,536個に倍増して136.80TFLOPSを達成[ 8] し、さらに2005年10月には131,072個のCPUで280TFLOPSを達成[ 9] したと発表した。
2007年11月の第30回Top500では、CPUコアをさらに増やし212,992個で478TFLOPSを記録[ 10] し、当初の計画目標である360TFLOPSを達成した。
高エネルギー加速器研究機構に設置されたBlue Gene
日本国内への導入
日本国内では産業技術総合研究所 生命情報工学研究センター が4ラックを導入し、2005年6月に発表されたTop500で第8位を記録した[ 11] 。その後ニイウス 株式会社で1ラック、2006年には高エネルギー加速器研究機構 で10ラックが稼働を開始した。
その他
2009年 9月17日、米国家技術賞を受賞した。[ 12]
Blue Gene/L
計算ノード
SoC の構成図
計算ノードの構成をシンプルにすることで、はんだ 不良などによるハードウェア故障を減らし、また高密度実装 を実現した。計算ノード単体の性能は、PCにくらべ低くまた搭載メモリ量も少ないため、一般的な環境に比べるとプロセスに対する制約が大きい。
構成
メモリ以外の要素はSoC として統合し、一つの集積回路に収めたことから、実質的には二つの部品のみで構成される。
PowerPC 440ベースのプロセッサ x 2
組み込みシステム 向けの省電力プロセッサであるPowerPC 440[ 13] をベースにしたものを2つ搭載している。各コアにはそれぞれ独立した倍精度 浮動小数点演算ユニット とL2キャッシュが付属し、2コア間では4MiB のL3キャッシュを共有している。
ネットワークインタフェース
計算ノード間の通信に利用するBlue Gene独自の三次元トーラスネットワーク 、集団通信ネットワーク 、グローバルバリアネットワーク と、ギガビット・イーサネット のインタフェースを備える。
JTAG インタフェース
計算ノードの診断やデバッグに用いる。
メモリ
512MiB のDDR SDRAM
高密度実装
省電力プロセッサを採用した理由は高密度実装を実現するためである。一般的なPCやサーバ、また旧来のスーパーコンピュータが採用する高性能プロセッサの多くは、消費電力とそれに伴う発熱も大きいため、そのようなCPUを筐体に多数詰め込むと排熱が非常に困難になる。かといって筐体内の密度を下げるとケーブルや接続コネクタなどの構成部品が増え、それが信頼性の低下を招く。
Blue Gene/Lでは消費電力あたりの性能が高い組み込み用途向けプロセッサを導入することでその問題を解決した[ 14] 。この設計方針により、Blue Gene/Lはその性能に対し電力消費や設置面積において非常にコンパクトなシステムとなった。Blue Gene/Lの消費電力あたりの性能は112.24MFLOPS/Wであり[ 15] 、地球シミュレータの3.01MFLOPS/Wと比べると、Blue Gene/Lは37倍も電力効率の良いシステムである。
ラック
計算カードを多数収容したノードカード
Blue Gene/Lのラック内には、計算ノード を2つ搭載する計算カードが512枚搭載され、2048CPUのマシンとして構成されている。それに加え、ファイルシステムへのアクセスを担当するI/Oノードが1ラック当り2から64枚搭載されている。I/Oノードはギガビット・イーサネット でラック外部のファイルサーバと接続し、集団通信ネットワーク を介して計算ノードと通信を行う。ラックに搭載するI/Oノードの数は、実行するアプリケーションの性質によって調整する。
ネットワーク
Blue Gene/L内のノード接続には、その用途に応じて異なる5種類のネットワークが使われている。
三次元トーラスネットワーク
2x2x2のトーラスネットワーク
三次元トーラス ネットワークは低遅延・広帯域を要求されるノード間の一対一通信に使われ、Blue Geneの通信ネットワークの中でも最も重要な位置を占める。
三次元トーラスネットワークは隣接ノード同士の接続から構成されるため、通信相手によってはその通信データが複数ノードを経由して到達することになる。
よって、トーラスネットワークの帯域を効率的に用いるには、三次元トーラスにおける通信を出来るだけ局所的に抑えるようなアルゴリズムを適用する必要がある。また、通信局所性をBlue Geneの物理的な接続配置にあわせることも重要である。
各計算ノード間の接続は1方向あたり1.4Gbps 、遅延は100ナノ 秒となる。各ノードは近隣の6ノードとそれぞれ双方向に接続しており、1ノードの合計入出力帯域は16.8Gbpsに達する。ノード数が65,536の場合トーラスは64x32x32となり、最大ホップ数は32+16+16=64ホップ、最大遅延は6.4マイクロ 秒となる。
集団通信ネットワーク
集団通信ネットワークの構造
集団通信ネットワークは、ある1ノードと複数ノードとの一対多通信やファイル転送に用いられるもので、各ノードと他の1~3ノードとの相互接続による2分木ネットワークによって構成される。発信元から末端までの遅延は最大5マイクロ秒、帯域は2.8Gbpsである。
現在のスーパーコンピュータ向け並列アプリケーションでは、各ノードの処理結果を集約する操作に多く時間を費やしている。その性質を踏まえ、Blue Geneの集団通信ネットワークには最大・最小値、合計等の整数演算やビット列論理演算による集約機能を備えている。Blue Geneの集団通信ネットワークの遅延は他の一般的なスーパーコンピュータにくらべ1/10から1/100であり、Blue Gene/Lの最大構成時においても効率的な集約処理を実現している。
あるノードから複数のノードにデータをブロードキャストするのに集合通信ネットワークが用いられる。三次元トーラスネットワークでもブロードキャストは可能だが、ネットワークトポロジの面から見て集合通信ネットワークのほうがずっと効率的である。
グローバルバリアネットワーク
並列アプリケーションでは、各プロセスの同期 がよく行われる。プロセッサ数とノード数におけるスケーラビリティを確保するためには、同期待ちに伴う遅延を改良する必要がある。グローバルバリアネットワークには、複数ノードの同期をハードウェアによる支援によって高速に行う機構が備えられている。
このバリアネットワークは低遅延という特徴を持ち、65,536ノードの同期に必要な時間は1.5マイクロ秒未満である。
システム管理ネットワーク
計算ノードの初期化や監視・管理・デバッグのためにイーサネットとJTAG等のインタフェースを変換回路を介して接続するネットワークが用意されている。このネットワークを用いて管理用コンピュータから遠隔操作を行う。
I/Oネットワーク
I/Oノードが持つギガビット・イーサネットが接続されるネットワークで、I/Oノード同士の通信と外部のファイルサーバへのアクセスを担う。
システムソフトウェア
OS
計算ノード
計算ノードでは、Compute Node Kernel (CNK)と呼ばれる独自のOSカーネルが動作している。マルチユーザをサポートしない、同時実行スレッド数はCPUの数と同じ2つのみ、ページング機能を持たずアドレス空間は512MiBに固定するなど、機能を絞ることでOSのオーバーヘッドを小さくしている。
CNKはPOSIX に近いインタフェースを持ち、アプリケーション開発者に対してGNU GlibcとファイルI/O用システムコールを提供している。I/O処理はCNKが行うのではなく、CNKの要求を受けたI/Oノードが代わりに実行する。上で述べたCNKの制限からfork やexecなどのマルチプロセスはサポートしない。
I/Oノード
I/Oノードでは、I/Oノード独自のデバイスをサポートしたLinuxカーネル ベースのカーネルを採用している。
I/Oノード上ではControl and I/O Daemon (CIOD)が動作しており、計算ノードのファイルアクセスやジョブの制御を行っている。計算ノードでのジョブ実行は、I/Oノードがプログラムを計算ノードにロードし、実行開始指令をCNKに出すことで開始される。ジョブ実行中、I/OノードはCNKから送られてきたI/O処理依頼を実行する。
サービスノード
計算ノードとI/Oノードの管理を担うサービスノードでは、Core Management and Control System (CMCS)が動作している。CMCSの役割は、各ノードの電源投入や温度やファンなどの監視と異常検知時の緊急シャットダウン、ノードの初期化や再設定などである。
Blue Gene/P
Blue Gene/Pのノードカード
Blue Gene/P は、2007年6月26日にIBMが発表した、次世代のBlue Geneスーパーコンピュータ。継続的に1 PFLOPSで稼動し、最大3 PFLOPSまで構成可能な余地を持って設計された。更に、小型で低電力の多数のチップを5つの特別なネットワークで結合する事で、他のスーパーコンピュータより少なくとも7倍のエネルギー効率を実現した。それぞれのBlue Gene/Pチップには、4個のPowerPC 450 850MHzプロセッサが搭載されている。1 PFLOPSのBlue Gene/Pは、高速の光ネットワークを備えた72ラックに294,912個のプロセッサで構成される。216ラックに884,736個のプロセッサまで拡張する事で、3 PFLOPS性能に達する。標準のBlue Gene/P構成では、1ラックに4,096個のプロセッサを格納する。
2007年11月12日、最初のシステムのJUGENE が、ドイツ のユーリッヒ研究センターで、65,536プロセッサを搭載し167 TFLOPSで稼動した[ 16] 。
Blue Gene/Q
Blue Gene/Q は、Blue Geneシリーズの最新のスーパーコンピュータの設計で、2011年内に20 PFLOPS達成を目標としたが、2012年に延期された。Blue Gene/Qは、高い電力当り性能を持つ Blue Gene/L や Blue Gene/P の拡張と強化を続けたもので、1684 MFLOPS/Watt を実現した[ 17] [ 18] 。
設計
Blue Gene/QのプロセッサはPower BQC と呼ばれ、PowerPC A2 をベースにしている。Blue Gene/Q は、16コアを持つ、4-Way のハイパースレッド 64ビット の PowerPC A2 ベースのチップを搭載している。そのチップは統合されたメモリとI/Oコントローラを持ち、各プロセッサコアに1 GB DDR3 RAMを持つノードカードに搭載される[ 19] [ 20] 。
導入
Blue Gene/Qを採用したシステムには以下がある。
プログラミングモデル
Blue Gene/Lのシステム構成 は、各計算ノードで独立して実行されるプロセスがネットワークを介して互いにデータを交換するメッセージパッシング モデルを想定した設計となっている。メッセージパッシングにおいてデファクトスタンダード として利用されるMessage Passing Interface (MPI)をサポートしていることから、MPIを利用して実装された既存のスーパーコンピュータ向け並列アプリケーションの多くは移植するだけでBlue Gene/Lの特徴を生かして実行される。
しかし、ネットワーク で述べたように通信の局所性が乏しい、また処理全体の中で通信時間の比率が高いもの、元々並列度が低いアプリケーションについては、より低遅延・広帯域なネットワークを備える他のシステムに比べ低い実行効率しか得られない。Blue Geneは、通信に対する計算の比率が高いアプリケーションほどより有利に実行可能である。
脚注
^ 世界最速のスーパーコンピューターの開発に向け1億ドル規模の研究計画を発表 - 日本IBM
^ 「Blue Gene」研究プロジェクト拡大を目的に米エネルギー省NNSAとIBMが提携 - 日本IBM
^ 米エネルギー省向けに世界最速スーパーコンピューターを開発 - 日本IBM
^ IBM Blue Geneが最速スーパーコンピューター・リストで圧勝 - 日本IBM
^ IBMが科学発展の原動力となるスーパーコンピューターを発表 最大100ペタフロップス演算性能を誇るBlue Gene/Qで現代の難問解決を支援 - 日本IBM
^ 新たな科学技術の発見のためのエンジンとなったIBM Blue Gene - IBMの生んだチェス・チャンピオン「Deep Blue」の子孫として -
^ TOP500.org. “November 2004 TOP500 Supercomputing Sites ”. 2007年10月24日 閲覧。
^ TOP500.org. “June 2005 TOP500 Supercomputing Sites ”. 2007年10月24日 閲覧。
^ TOP500.org. “November 2005 TOP500 Supercomputing Sites ”. 2007年10月24日 閲覧。
^ TOP500.org. “November 2007 TOP500 Supercomputing Sites ”. 2007年11月15日 閲覧。
^ TOP500.org. “Computational Biology Research Center, AIST ”. 2007年11月7日 閲覧。
^ IBM、Blue Geneで米国家技術賞を受賞 - ITmedia
^ International Business Machines Corp. “PowerPC 440 Embedded Core - IBM Microelectronics ”. 2007年10月24日 閲覧。
^ A. Gara, et. al (2005). “Overview of the Blue Gene/L system architecture” . IBM Journal of Research and Development 49 (2). doi :10.1147/rd.492.0195 . http://researchweb.watson.ibm.com/journal/rd/492/gara.html .
^ Green500.org. “The Green500 List ”. 2007年10月24日 閲覧。
^ Supercomputing: Jülich Amongst World Leaders Again
^ Top500 Supercomputing List Reveals Computing Trends
^ IBM Research A Clear Winner in Green 500
^ IBM uncloaks 20 petaflops BlueGene/Q super
^ US commissions beefy IBM supercomputer - IDG News Service
^ Argonne National Laboratory Selects IBM Supercomputer to Advance Research - Based on next generation IBM Blue Gene, the 10 petaflop "Mira" supercomputer will fuel national innovation - IBM
参考文献
外部リンク