最近の話題 20051126

1.HPC ChallengeでBlueGene/Lが圧勝

  11月13日の週にシアトルで開催されたSC|05において,HPC Challengeの表彰が行われました。

  スパコンの世界では,先週の話題で紹介したTop500を決めるLinpackが有名ですが,Linpackは巨大な連立一次方程式を解く問題で,行列積の計算が殆どを占めるので,一面的な評価であり,スパコン全体の性能を代表するものではないという批判があり,テネシー大学のJack Dongarra教授などが中心になって開発されたのがHPC Challengeベンチマークです。

  HPC ChallengeはLinpackとほぼ同じHPLというベンチマークに加え,連続アクセスでのメモリバンド幅を計るStream,メモリのランダムアクセス性能を図るRandomAccess,フーリエ変換を計算するFFT,計算ノード間の通信バンド幅,レーテンシを計るベンチマークなどから構成されています。性格の違うベンチマークプログラム群なので,総合1位というのは無いのですが,HPL,Stream,RamdomAccess,FFTの4種のベンチマークそれぞれについて,最高性能を登録したシステムを表彰します。

  今年が第一回ですが,HPLはTop500とほぼ同じなのでBlueGene/Lが取ることは確実視されており,Streamもプログラムの性格上,BG/Lと見られていました。しかし,RandomAccessは伝統的なベクトル機が有利で,BG/Lは絶対に不得意と見られていたのですが,これもBlueGene/Lが取りました。

  RandomAccessについてはCrayのT90の性能を上回るマシンが10年振りに出てきたという説明でした。現在の登録値は,Opteron 5208CPUのCray XT3が0.7GUPs弱の値に対して,65KプロセサのBG/Lは35GUPsを達成しており,50倍の性能です。 ちなみに第二位はCrayのベクトルスパコンのX1Eの1008CPUシステムで,7.8GUPsです。

 主催者側が受賞者を読み上げ,受賞者は前に出て表彰状などを受け取るのですが,3回続けて同じ人が受け取ったので,RandomAccessの表彰状を受け取って席に戻ろうとすると,会場から,「もう,戻らなくていいよ」と声がかかるほどで,次のFFTもBG/Lが受賞しました。

  各賞の賞金は$500で,後で小切手を郵送するのですが,賞金を出すHPC Wireの人が,(4枚とも同じあて先なので)切手代を節約してくれてありがとうと言ってました。

2.MicrosoftがHPCに本腰

  今年のSC|05のキーノートを講演したのは,MicrodoftのBill Gates会長です。もっとも本社は対岸のBelleviewですから,会場のWashington State Convention and Trade Centerは通勤圏内で,来るのは楽です。今年のSCは登録参加者がははぼ1万人と過去最大で,Bill Gates効果ではないかという人もいました。

  今後の変化として,プロセサのクロックは,もう,あまり上がらない。従って,ソフトはマルチプロセサで性能を出さなければならない。もう一つの変化はXMLで,すべてのものがディジタイズされ詰め込まれる。これを効率的に扱うことが重要。そのためにはソフトウェアのブレークスルーが必要と述べていました。

  そして,”Reduce Time to Insight”と述べて,コンピュータはすべての科学の分野で使われるようになっているが,それを加速して科学的な洞察に至るまでの時間を短縮することが目的と述べました。

  世界で10の大学とHPCの研究で提携し,研究費をだしていると述べました。米国の大学が多いのですが,英,独,中国もあり,日本では東工大が入っています。

 MicrosoftはSC|05の展示でも,入り口脇の一番目立つところに大きなブースを構えていましたし,SCの論文発表の大賞とも言えるGordon Bell賞のGordon Bellは今はMicrosoftの従業員です。また,最近,英国政府のe-Scienceプロジェクトを率いていたTony Hey教授を引き抜いて同社のHPC関係を担当する副社長に据えました。ということでHPCに本腰を入れて来ているなという感じをもっていたのですが,11月25日のCNETがBurton SmithがCrayを辞め,Microsoftに移ると報じています。SC05にも来ていましたが,Burton SmithはCrayの技術の顔でというだけでなく,米国のスパコンの顔のような人ですから,それがCrayを辞めてMicrosoftに移るとは驚きです。よほど良い条件だったと思わざるを得ません。

3.はやぶさがイトカワに着陸

  JAXAの小惑星探査機であるはやぶさが目的の小惑星イトカワに着陸しました。11月20日にも記録によれば実は着陸していたと報道されましたが,このときは試料採取装置が動かなかったのですが,25日の着陸では試料採取装置も動き,JAXAのサイトの発表では,はやぶさは離陸し上昇中とのことです。JAXAのサイトにはいろいろと詳しい情報がのっていますので,興味のある方は行って見てください。

  ここまでは姿勢制御装置の故障などの障害を乗り越えて何とか達成したのですが,この試料を地球に持って帰るという難事業が残っています。これからロケットで加速して離脱し,太陽の引力に引かれて地球軌道近傍に落ち込み,最後には地球の引力を利用して大気の上層に浅い角度で侵入して空気との摩擦でブレーキを掛けて減速して回収という計画ですが,難しいコントロールです。

  JAXAの講演会の時に,難しい再突入をやらなくてもスペースシャトルか何かで拾い上げることは出来ないのかと質問した人が居ましたが,逆噴射で減速するような燃料は積んでいないので,秒速 数十Kmで飛んでくるはやぶさを拾い上げるのはほぼ不可能で,大気との摩擦で減速するしかないという答えでした。

4.Fall Microprocessor Forum その3

4.1 AzulのJavaオフロードエンジン

  特別講演としてAzul社のScott Sellers氏の講演がありました。Azulのシステムについては2004年10月2日の話題で紹介しています。同社のVegaプロセサは8コアごとに1MBのL2$を共用し,それが3組で24コアを集積するチップで,さらに16チップをSMPで接続し,合計384コアという巨大なSMPを構成できます。そして,この384コアシステムが11Uの筐体に収容されます。

  プロセサの詳細は公表されませんでしたが,JAVA VMの実行に適したアーキテクチャであり,ガーベッジコレクションもアプリの実行を止めることなく実行できるようになっています。

  ホストのJVMにパッチをあてたものを使い,これでJAVAの実行をAzuylのBoxに飛ばして実行する方式で,アプリに手を入れる必要はなく,また,OSも特定のOSを必要としません。性能ですが,某社で72CPUのSPARCサーバを使っていた例では,15チップのAzul Boxをつけると6CPUで済むようになり,平均的にはチップ数で5.6倍に相当としています。

  384コアとなるとソフトのライセンスが問題ですが,BEA社のWebLogicではホストにCPU数に比例する単価を3倍にするかわりにAzul Boxはカウントしないという料金体系で契約したということで,前記の某社の例では72CPUライセンスから6x3=18CPUラインセンスに減る計算になります。しかし,こういう交渉をISVごとにやるのは結構大変そうです。

  Azul社の講演についてはPC WatchPC WEBが報道しています。

4.2 Microsoftの基調講演

  今回は初めてソフトのセッションが設けられ,MicrosoftのソフトウェアアーキテクトのHerb Sutter氏が講演しました。コアの性能が上がらなくなったので,ソフトが何もしなくても性能があがるFree Lunchの時代は終わりで,マルチコアを使わないと性能を上げられない。Webサーバやデータベースサーバなどでは同じコードを使う沢山のプロセスやスレッドが並列に動作するので,マルチコアを使うのは殆ど問題ではないが,クライアントのアプリは,現状では,殆どがシングルスレッドであり,これを並列化するのは大変な問題で,過小評価してはならないと述べています。

  現状での並列化はスレッドとロックで行われているが,これが中々デバグが難しく,より良い方法論やツールが必要ということで,同氏のやっているConcur Projectの話をした。ハイレベルの抽象化で,ブロック化と再入性を明示的に指定し,アクティブオブジェクトの境界と所有を明確化することによりロックの必要性を減らし,必須のロックに対しても,ロックで保護するデータの明示化やロックレベルの明確化を行うと述べている。これだけでは詳細は理解できないが,例えば,現在のロックは構文としては理解できるものの,どのデータのアクセスを保護しているかなどの意味は不明であり,これらを明示的にすることにより並列性を改善しようとする試みは正しい方向であるように思われる。

  具体的な例として,Activeで並列的,非同期的に動けるオブジェクトを明示的に指定し,それらが生成する結果をwaitで明示的に指定することによりjoinを行う方法を示した。ハード屋の筆者には,これだけだとOpenMPと比べてどれだけ良いのか判らないが,現状,OpenMPはFORTRANとCしか無く,言語仕様ではなく#Pragmaでの指定であるが,Concurの方法はその他のC++やC#,Pysonなどにも使えると述べている。

  ハード屋として,このような並列化を容易にするためのソフトの努力は大歓迎であり,いささかも反対するものではないが,クライアントのソフトを並列化してこれ以上速くする必要性がどれだけあるのか,マイクロソフトが加えた余計なMIPSイーターの機能をWordなどから削除すれば十分ではないかという気もする。

  このマイクロソフトの基調講演については,PC Watchが多少カバーしています。

4.3 Xen OpenSourceとAMDのPacifica

  知る人ぞ知るXenの講演がありました。XenはOpenソースの,VMwareのようにプロセサを仮想化するハイパーバイザーです。一つ一つのジョブにCPUを割り当てると,ピークのトラフィックを処理できるような能力が必要で,平均的な稼働率が非常に低くなりますが,複数のジョブのピークが重なる可能性は少なく,Xenで物理的には一つのプロセサを複数に分割して別OS,別アプリを動かすことにより,平均的な稼働率を高めることができます。また,処理量が大きくなったときには,仮想CPU単位で,別のハードウェアに処理を移行することも出来,高負荷にも対応できます。

  Xenの実装はParaVirtualizationと呼ばれる方法で,上に載るOSにも多少手を加えて実行性能を高速化する方法で,このような協力なしに仮想化するVMwareなどよりもオーバヘッドが小さく高性能なのが特徴です。また,最近のIntelのVanderpoolやAMDのPacificaなどを利用して効率上げています。

  サーバの利用効率を改善し,管理工数を削減することでフォーチュン100社で2010年にはコストを1/3に下げることが出来るとしています。利用効率を上げたり,管理コストを下げることは良いことですが,需要が大して増えない状況では,マーケットの規模が縮小するだけと言うところが気になりますが,こういう進歩を止める手はないのでしょう。

  Xen自体は50K行程度とのことで比較的小さなソフトで,現状ではEM64T,IA64,Power5などで動作しています。Hypervisorを各社で作っても意味がないので,SPARC用のXenも開発されており,Hypervisorの「標準になる勢い (但し,MicrosoftもMS Hypervisorを作っているので,これらの戦いになる可能性はあります)です。

  AMDのPacificaは2005年5月28日の話題で仕様を紹介しており,技術的的には付け加えることはありません。9月10日の話題で紹介したようにFred Weberが辞めてしまったので,今回の発表者はFellowのKevin McGrath氏です。Intelプロセサはブリッジが別チップなのでIO側のアドレス保護はCPUだけでは出来ませんが,AMDのOpteronではIOアダプタのアクセスについても保護が可能であり,一段進んだ保護機構になっています。

  また,AMDのPacificaに関する発表はPC WEBがカバーしています。