あやうく事業仕分けの対象にもなりつつあったスパコンなどなど最先端技術を見てきたお話。
書いてるうちにスパコンがメインになっていました。
理化学研究所 一般公開 2012
訪問日:2012年4月21日
報告者:Buu
スーパーコンピュータの謎に迫る!!!
【はじめに】
スーパーコンピュータとは?
スーパーコンピュータ(以下、スパコン)はHPC(High-performance computer)とも呼ばれ、高度情報社会化とともに世界各国での導入が進みつつある。内部の演算処理速度は一般的なコンピュータに比べてはるかに高性能であり、そのために大規模なハードウェア構成や、特殊なソフトウェアの構成がなされている。
多くのスパコンにおいては、大量のコンピュータを並列的に利用し、膨大な計算処理を高速に処理できるような工夫がされている。特に、近年ではGPGPU(General-purpose computing on graphics processing units)を用いたアクセラレータを導入し、汎用CPUを併用することによって、価格や消費電力を抑えながらより高速な処理をすることも可能となってきた。
「スーパーコンピュータ」の定義はやや曖昧だが、その時代における最新技術を導入し、最高性能を目指したコンピュータを指している。また、一般的に使用されるサーバー機よりも浮動小数点演算の性能(FLOPS: Floating-point Operations Per Secondで示される)が約1000倍以上のものを、そう呼ぶことが多い。
1990年初頭は日本・米国の2国を中心とした集中的な導入が盛んであったが、近年では国家プロジェクトとしてスパコンの開発に多大な予算をかける国も増加してきた。その結果、現在中国のスパコン「天河」は日本に次ぐ世界2位の性能を実現している。日本では2006年より、文部科学省を主導とした「次世代スーパーコンピュータプロジェクト」を開始し、現在世界1位の性能を実現した。
(世界ランキングに関しては後述)
スパコンの主な利用目的
スパコンの利用目的としては、物理現象のシミュレーション、計算化学、気象研究などがある。いずれも高度な計算を必要とし、高度な計算を最大のパワーを用いて最短時間で完了するスパコンは必要不可欠である。具体的には、航空機の風洞シミュレーション、核兵器の爆発シミュレーション、核融合の研究、構造体・化合物・生物学上の高分子・ポリマー・結晶などの性質の計算、物理定数の計算、量子力学、気象予報など、さまざまな用途に用いられている。
TOP500
世界の高速なコンピュータをランク付けし、上位500位までをリスト化しているプロジェクト。1993年に発足し、6月と11月の年2回、TOP500リストの更新を行っている。マンハイム大学、テネシー大学、ローレンス・バークレイ米国立研究所の研究者によってリスト作成が行われ、その評価基準にはLINPACKというベンチマークソフトによって求められた性能の値が用いられている。
TOP500 Supercomputing Sites

TOP500 Supercomputing Sites

図1 TOP500 WEBサイト ( http://www.top500.org/ )
2011年11月発表のリストでは、1位が日本・理化学研究所の「京」、2位が中国・NUDTの「天河一号A」、3位が米国・オークリッジ国立研究所の「Jaguar」という結果であった。なお、「京」は2011年6月、11月の2期連続で1位を獲得している。
【理化学研究所のスパコン】
和光研究所には、「RICC (RIKEN Integrated Cluster of Clusters)」が、神戸の計算科学研究機構には、次世代スーパーコンピュータ「京」が設置されている。
今回、その2機種について詳細に解説していただいた。以下はそれらの結果と、会場のポスターやWEBで公式に発表された情報をまとめたものである。

RICC (RIKEN Integrated Cluster of Clusters)

RICCは、2004年設置当時世界ランキングでも7位にランクインしているRSCC(RIKEN Super Combined Cluster)の後継として導入されたもの。2009年に導入が行われ、日本では最高処理速度である97.94TFLOPSを記録している。実行性能は92.36%を記録。富士通のPCサーバー「PRIMERGY RX200 S5」を1053台用いて超並列PCクラスタを構築してあるほか、多目的PCクラスタ、独自開発した分子動力学専用計算機「MDGRAPE-3」、大容量メモリ計算機なども備え、物理学、化学、工学、生物学、医科学といった幅広い分野の計算が行える仕様となっている。また、後述する「京」で動作させるプログラムの開発も、このRICCで行っているそうだ。
独自開発したスケジューラによってジョブを管理・実行、常時モニタリングしているため、高度に並列化した環境における高速な演算性能が確保されており、見学当時もほとんどフル稼働している状態であった。
図2 クラスタの動作状況モニタ
上の図2はクラスタの動作状況をモニタリングしたもので、各クラスタがどれくらいの負荷で動作しているかが一目で分かる。横長の正方形1つが1つのクラスタを表し、よく見るとそれが8分割されているのが分かる。各CPUで8スレッドが動作可能なためである。青色が負荷0%、赤色に近づくほど負荷が高くなり、赤色では負荷100%というふうに状態を示しているが、ほとんどが赤色でフル稼働状態。
物理定数計算などを行っているほか、自動車の強度シミュレーション等を高速に行うためにも役立っているというお話を頂いた。昔は実際に巨額の資金を使って試作品を作ったうえで、それを破壊して安全性の確認を行っていたそのような場面も、コンピュータ上でモデリングしてシミュレーションを行うことで迅速、かつ低コストに抑えることができ、製品の発表までのプロセスもより短時間にすることが可能になってきたのである。また、このスパコンはさまざまなジョブが同時に実行されており、大量のジョブが順番待ちのような形で待機させられているそうだ。処理が行われているジョブが完了し次第、次のジョブが要求しているクラスタの台数が確保されれば、新しいジョブの実行が始まる。1つのジョブあたり、1053ノード(筐体)のうち最大で1024ノードを使用することができ、もしそのような処理が行われる場合はそのジョブが終わるまでクラスタの大部分は使用できず、待機状態になるそうだ。
 
図3 クラスタ動作状況のイメージ
各クラスタは4コア/8スレッドの処理が可能なIntel Xeon 5570 2.93GHzプロセッサを搭載しており、各クラスタが複数台集まってラックに格納され1つのノードとなる。
並列クラスタ部分だけで、CPUのコア数の合計はなんと4212個にも及び、8424個ものスレッドを同時に実行することができる。
図4 スパコンCPU表示の見方
図3では、小さい1つの枠(コア)が4つ集まって細い青枠で囲われた部分が1つのCPUで、さらに1つのクラスタあたり2つのCPUが積んであることから、太い青枠に囲まれた部分が1つのクラスタを示している。前述のとおり、小さい枠が赤色に近づくにつれ、高負荷であることを示している。負荷状況は5分ごとに更新しているそうだ。
今回特別に、ラックの扉を開けてクラスタを見せていただくことができた。
図5 ノードとクラスタ
 
図6 富士通のラックサーバー、IntelのXeon搭載
この横に細長い筐体ひとつひとつがそれぞれのクラスタであり、それがラックの中に数十台マウントされている。SilverStormと書かれた部分は、各クラスタどうしが通信するためのネットワーク機能を提供するスイッチ。これらが並列的に動作することによって、96TFLOPSを超える強力な演算性能を実現しているのである。
各クラスタは12GBのメモリ、500GBのRAID0構成HDDストレージを搭載している。
図7 Massively Parallel Cluster: 96.0TFLOPS
それぞれが冷却ファンの冷却音を響かせており、筐体に近づくと、顔が火照るような熱風を発していた。これだけ負荷がかかれば、大量の熱が発生してしまう。その熱にはどのようにして対処しているのだろうか…?スパコン冷却の仕組みをお聞きした。
図5の左下に着目してみると、床に四角い網のようなものが設置されていることが分かる。ここから、冷却したエアコンの風が常時吹き上げているのである。そして、スパコン本体の発熱を風で吹き流した後、天井から回収される仕組みになっている。熱が溜まることがないように、空気は常時下から上へと循環していたのである。ラック内部の空気は前から後ろへと流れている。そのためラック後部で空気吹き出し口が床についていない部分に立つと、猛烈な熱風が後ろに流れていることがよく分かる。実際にその場所に立ってみるように言われ、かなりの高温にとても驚いた。ラック内部でも、前方から冷却された空気を吸い込んで後部から熱を排出する、という工夫された空気の流れによって効率よく冷却される仕組みが考えられていたのである。
図8 ラック後部
図9 冷却装置のスイッチ(22℃に設定されている)
それぞれのクラスタどうしは10Gbit Ethernetと、InfiniBandとよばれる 高速通信規格で接続されており、非常に低レイテンシな状況下で通信が可能。
また、これらのクラスタとは別に、nVidiaのTesla GPUアクセラレータを搭載したNECのクラスタは、強力なGPGPUの演算機能を提供している。
図10 NEC製クラスタ
図11 Tesla GPUアクセラレータとNECのシステムボード
図12 RICC(ラックの扉が閉まった状態)

次世代スーパーコンピュータ「京」

 
図13 京
京(K Computer)は、国家プロジェクトとして文部科学省と理化学研究所を中心に開発された次世代スーパーコンピュータシステム。
“様々な分野で画期的な成果を創出し、科学技術計算の飛躍的な発展を図ることを目指している。そのため、産業利用を含めた一般的利用のほかに、文部科学省において、社会的・国家的見地から取り組むべき分野・課題について戦略的・重点的に研究を推進するための「HPCI戦略プログラム」を構築・運用している。”…会場ポスターより一部を抜粋。
つまり、国家の戦略の1つとして「京」を用いて新しい成果を出していこうという政策の下で、一時期事業仕分けの対象にもなりかけた巨額の予算をかけて構築されたのである。
具体的な戦略の内容としては、戦略5分野と呼ばれるものを挙げている。すべて列挙してみると、①予測する生命科学・医療及び創薬基盤、②新物質・エネルギーの創生、③防災・減災に資する地球変動予測、④次世代ものづくり、⑤物質と宇宙の起源と構造、であり、どれも高度なシミュレーション等の演算が必要となる項目ばかりである。
システムの特徴としては、世界最高性能の低消費電力CPUと、新規開発した高信頼性ネットワークの導入が挙げられる。以下は、会場ポスターから抜粋した特徴。
・45nm半導体プロセス技術によるスカラ型CPU(SPARC64 VIIIfx、8コア、128GFLOPS。ワットあたり世界最高性能)を採用。高性能化、大規模化のための機能として、CPUが扱う細かいデータ単位を複数個まとめて扱うとともに、データ一貫性のためのチェック・訂正及び再実行の機能を随所に備え、アプリケーション実行の高性能化・信頼性向上に寄与。
・計算ノード間ネットワーク(Tofu)には、構成の柔軟性・拡張性が高く超大規模接続が可能な直接結合網を採用。6次元メッシュトーラス結合(ユーザビューは3次元トーラス)を採用することにより、ユーザー利便性、耐故障性・運用性の向上に寄与。
・水冷システムを導入することにより、効率よくシステムを冷却して消費電力を削減するとともに、故障率を低減。
・数百ペタバイト超級まで拡張可能な高機能・超大規模ファイルシステムを用い、数十ペタバイトのユーザー領域を提供。
・グローバルおよびローカルファイルシステムから成る2階層ファイルシステムを採用。ファイル移動には事前予約型の自動ステージング機能を提供。
OSはRed Hat Enterprise Linuxを用いているが、京のためにさまざまなカスタマイズ施したものを用いている。クライアントからの操作はフロントエンド経由で行う仕組みになっているそうだ。
もし停電したときは、現在内部で行われている計算結果はすべて破棄して、最初からやり直す。システム全体を動かすのに1万キロワット/Hour以上の電気を使っているため、バックアップ用電源などでは足りないからである。それだけ大量の電気を使っているが、去年の夏、節電時も通常通り稼働させ続けていたそうだ。神戸では現在860台が動いている。節電要請があったため負荷の大きい計算ができない、などの制約はあったが、西日本なので、通常稼働を続けることができたということであった。東北地方の大地震が起きた当時はすでに200台ほどが稼働していたが、建物に免震構造を採用していることもあって震度3以下の揺れに抑えられた、とうかがった。
京が設置されている建物は60m×60mの柱のない空間になっており、コンピュータの配置・配線がより効率的に行えるようになっている。三角形のみで構成されたトラス構造をメインとした設計は、耐震の面でもかなり有効である。
図14 京が設置されている建物の構造(ポスターより)
現在も世界ランキングでは1位となっている京。その内部構造はどのようになっているのか?詳しくお話をしていただいた。
最上部にある、黒いパイプの伸びる銀色の箱はシステムボード。ひとつひとつがメモリやOS、ネットワークインターフェースを積んだクラスタであり、ここに、計算処理の要となるSPARC64 VIIIfxが搭載されている。システムボードは上部に12枚、下部に12枚で、1筐体あたり24枚搭載されている。
黒いパイプは水冷のためのもの。15度程度の水を流し込み、2~3℃程度水温が上がって戻ってくる。故障したり水が漏れたりした場合はアラーム等ですぐに警告が出て、問題が起こったシステムボードは停止されるそうだ。その場合、ホットスワップ対応のため、動作させたまま水冷の配管を抜いて筐体から取出し、交換できる。
図15 京の内部構造(上部)
システムボードの左下にみえる9つのファンがついた部分が電源ユニット。各筐体9つあって、どれかが故障した場合でも動かしたままで交換が可能。その右隣にあるのが通信ユニットで、合計860台ある筐体をネットワークで繋ぐためのユニットが6つ取り付けられている。
図16 京の内部構造(下部)
その下にある黒い箱は、サービスプロセッサーボードとよばれるもの。システムボードを順番に起動していったりする機能や、CPUが何℃で動いているか、などをOSでチェックするなど、筐体の監視サービス機能を提供している。どこかの機能が異常だったり、高温となったりしたことを感知すると、その部分を切り離したり、アラームとして報告したりすることが可能。
すべての部分がホットスワップ(活線挿抜)対応なので、故障して交換している最中でも計算を続けることができ、これらの機能のおかげで京が停止することはないそうだ。
処理速度はどうやって測っているのであろうか。それらについても詳しく聞いた。ポスターによれば、京の処理能力は以下の表1のようになっていた。
2011年6月 2011年11月
演算性能 8.162PFLOPS 10.51PFLOPS
理論性能値 8.774PFLOPS 11.28PFLOPS
実行効率 93.0% 93.2%
行列サイズ 10,725,120 11,870,208
実行時間 27時間59分 29時間28分
表1 京の性能
また、世界ランキングでの1~5位までの性能は表2のようになっていた。
国名 システム名 演算性能(PFLOPS) 実行性能(%) 演算性能(/1W) 実行時間
1 日本 京 10.51 93.2 824.56 29h28m
2 中国 天河1A 2.566 55 635.15 3h22m
3 アメリカ Jaguar 1.759 75 253.07 17h16m
4 中国 星雲 1.271 43 492.64 1h54m
5 日本 TSUBAME2.0 1.192 52 852.27 2h24m
表2 世界ランキング1~5位のスパコンの性能
性能の測定は、LINPACKというプログラムを定められた条件下で動かし、1秒当たりの浮動小数点演算の回数を調べることで行う。京の場合は、10.51PFLOPS = 10.51*1015FLOPS
 = 10,510,000,000,000,000FLOPS = 1京510兆FLOPS。1秒間に想像もできないほどの浮動小数点演算を行っているのだ。
身近なコンピュータの例を挙げれば、現在iPhone4SのCPUでは、140MFLOPSくらい。30年前のスパコン「クレイワン」では、160MFLOPSであったことを考えれば、30年後には今のスパコンも手のひらサイズになってしまうのだろうか。現在は10ペタだが、将来的にそれも手のひらサイズになったらいいですね、ということであった…!
表に登場する実行時間とは、LINPACKを動かし始めてから、クラスタが一台も故障しないで終了するまでの時間。中国では3時間ほど、京は29時間ほどであることが分かる。
京はGPGPUで動かしているので、性能は高いが、実行効率は多少落ちているそうだ。
実行効率とは、プログラムを実行しているときに、ハードウェアの物理的に予想された性能をどれくらい使いこなすことができるか、ということ。例えば、最高速度180km/hの車であったが、実際に動かしてみると140km/hしかでないとき、その効率は77.7%。京は、93パーセントと他のスパコンに比べてはるかに高い。一方で、2位、中国の天河は実行効率50パーセントかつ実行時間は3時間で、壊れやすいし効率も低いことが分かる。
ただ、よく考えてみれば、京の部品はCPUだけで8万2千個以上もある。すべての部品は合計で1億個を超えている。半導体1個1個に着目すれば、数えきれないくらいあるだろう。その中で1個も故障しない状態が1日続くと、1個の部品だけに着目すれば、100年以上故障しないことになる、かもしれないのだ。そう考えると京の信頼性の高さがうかがえる。その一方で中国の天河は故障が多すぎて、3時間以上はLINPACKが動かせない状態だという。ハード的な面とソフト的な面ではどちらが故障しやすいのか、といえばやはりハード的な面ではあるが、京はLINPACKを動作させているときに864台すべてが2日~3日間故障ゼロで動作した実績もある。通常の動作では、1日1回故障するかしないか、くらいのようだ。
故障がどのくらい多いのか。いかに少なくできるか。そこで性能は決まってくる。
ちなみに、京の通信ケーブルは全部合わせると20万本以上、距離にすると1000kmにもなるそう。それで配線ミスもなく、接続エラーもなく動作するというのは、達成がとても難しいことである。構築は技術的にも非常に精通した職人が行っているが、100人以上の人が集まって、おととしの9月末から始めて、去年の8月初めまでの10か月もの長期間におよびケーブルを引いたり、接続したりする中でそのような結果を達成しているのは驚くべきことだ。
スパコンごとの性能の違いは、CPUのアーキテクチャがボトルネックになっている部分も多いそうだ。例えば天河はGPGPUのアクセラレータといった専用の加速機構を付けているが、そのアーキテクチャは天河専用のものを採用している。一方で、京は汎用のSPARCアーキテクチャを備えたCPUを使っている。つまり、そのスパコンに依存した特有のプログラミング手法なしで普通のプログラムをだいたい動かせるのだ。そのため、今までの資産を生かしたコーディングが可能となり、ハードウェアの性能を発揮しやすいという特徴も挙げられる。93パーセントという効率が、それを証明している。
これだけ実行効率が高いのは、汎用のCPUを積んだ小さいマシンくらいで、スパコンでは珍しく、ペタを超えるようなマシンでは皆無で、100テラクラスのものでもほとんどない。

 図18 京のシステムボード内部

図のシステムボード内部を見れば分かるが、京ではすべてのCPUとネットワークインターフェースに水冷を導入している。銅製のパイプがつながっている先にあるのがそれらの部品である。そのような中で、これだけ低い故障率を誇るのは非常に高度な技術なのだ。
京の利用料金は研究で使う分には無料で、委員会で申請を出すことによって許可が得られた場合に使用することができる。民間の企業などでも利用を受け付けている。将来的には料金を支払って、その分だけスパコンのリソースを使用する、という形も登場するかもしれないとのことであった。
富士通のコンピュータのみが京に導入された経緯は、日立、NECのスパコン事業撤退にあった。もともと日立・富士通・NECが参入していたが、富士通以外の2社は資金的にもたないのでやめる、という形で撤退してしまったのだ。もともと、富士通はSPARC、NECはベクトルプロセッサを開発する予定で、NECベクトル型プロセッサと富士通のスカラ型プロセッサの2種が一緒に動く予定であった。結果的に、京には富士通のSPARCだけが残ったのである。
導入にかかった費用は、プロジェクト全体で約1100億円。なぜこのような高額の費用がかかったかというと、新しいものを作るということで設備もすべて新しく作ったため。しかし、その結果世界1位を維持することができている。行政と結構いざこざがあって仕分け対象にもされたが、逆に宣伝効果にもなったといえる、のだそうだ。
「性能では、やはり1位を目指したいですね。」とおっしゃられていたが、もちろん同感である。
【まとめ】
スーパーコンピュータについて調べ、実際に間近で見ることを通して、多くの発見があった。1つは、スパコンは現在実現可能な最高レベルの演算処理性能を反映していることである。高性能なスパコンを開発するためには、ただ単純に高額な資金をかけてたくさんのコンピュータを繋いでいくだけではなく、それを実現するために今までにない高性能なCPUやシステムを開発することで、新しい発明がなされる。そして、その時点で最も高速な、効率の良いコンピュータのシステムが生まれる。スパコンの演算結果を生かして生まれてくるものや発見、研究成果は計り知れないが、そのために使われる道具を作る過程で生み出されるものも計り知れないのだ。
そのことを踏まえてみれば、これらのスーパーコンピュータ開発はさらに盛んにおこなわれるべきだと感じる。その技術は、後々スパコン以外のもっと身近な場面でも生かされてきて、新たなイノベーションの一端となるかもしれないからである。そして、将来的にはそのような高性能情報機器に用いられるような、今までになかったような革新的なデバイスの開発にも関わってみたい。
【参考文献】
※できるだけ最新の情報を入手するため、WEBによる情報収集を行った。
スーパーコンピュータ-Wikipedia
http://ja.wikipedia.org/wiki/%E3%82%B9%E3%83%BC%E3%83%91%E3%83%BC%E3%82%B3%E3%83%B3%E3%83%94%E3%83%A5%E3%83%BC%E3%82%BF%E3%83%BC
スーパーコンピュータ技術史
http://ja.wikipedia.org/wiki/%E3%82%B9%E3%83%BC%E3%83%91%E3%83%BC%E3%82%B3%E3%83%B3%E3%83%94%E3%83%A5%E3%83%BC%E3%82%BF%E6%8A%80%E8%A1%93%E5%8F%B2
理化学研究所 次世代スーパーコンピュータ開発実施本部
http://www.nsc.riken.jp/index_j.html
「京」システム開発のねらい
http://www.nsc.riken.jp/project/nerai.html
TOP500 Supercomputer sites
http://www.top500.org/
世界No.1の日本製スーパーコンピュータ「京」は、「命を救える処理速度」
http://gigazine.net/news/20111004_k_ceatec_japan_2011/
理研の新スーパーコンピュータ「RICC」が稼動
http://www.riken.jp/r-world/info/info/2009/090807/index.html