v

Loading
ITの風景
ラ・マンチャ通信
お問い合わせ
 
 
  論考/提言/元外資系SEとしての視点
中島丈夫のITへの見果てぬ夢
ITの技術動向、業界動向などについて鳥瞰します。過去・現在・未来をさまよう見果てぬ夢を追います。
多分に主観的ですが、その分本音で書きたいと思っています。40年間SEというIT道(?)を歩んできた小生の引き出しには多彩な素材が眠っていますが、問題は適切に思い出せるかどうかです。かなりのスピードで呆けが進行していますので。。。
テーマや記述が行ったり来たり、くどくなるのをお許しください。
小生が特にお伝えしたいのが、お客様とともにシステム造りをするSEの観点から見たIT技術の論考、そして外資系の技術者として海外研究者/技術者との交流をベースにした多様な視点です。偉そうな態度に見えるかもしれませんが、あるいは取るに足らない論議だと思うかもしれませんが、日本のIT論議に一番欠けていた視点だと昔から危惧していました。



IBMのHWの新たな挑戦.Blue Gene/Qで業界初のTransactional Memoryを導入

- IBM100周年のブロガーミーティングで大失敗.懺悔とフォローのためのコラム -3

2011年09月22日記述


 Transactional Memoryは玄人好みのテーマで、一般にはなんのこっちゃ、という価値しか伝わらないと思いますが、これが一般解として利活用されるとなると、マイクロプロセッサーの風景が大きく変わる可能性があります。
かってSUNが果敢に挑戦しましたが失敗し、Oracleに買収される一つの原因になってしまいました。
 

技術の王道は先端分野への挑戦.IBMにみる社内複数チームの多彩な競争

 IBMのビジネスモデルは脱HWだと度々論評されますが、内容的にはそんなことはなく、例えば最先端マイクロプロセッサーや半導体の開発力などでも、業界の覇者インテルを頻繁にリードする、数多くの発明や製品開発を行っています。コモディティ対イノベーションの図式ですね。
小生は一介のIBM OB、SEですが、IBMのサービスモデルはHWに大きく依存していると信じています。
そんなHWシンパの小生ですが、次世代スパコンBlue Gene/Qで業界初の Hardware Transactional Memoryを導入する、と、IBMがHOT Chips 23で発表したのを知って、正直驚きました。

これで次世代マイクロプロセッサーの技術動向が俄然面白くなってきました。

 マイクロプロセッサーの話題になると、巷間ではIntel x86コモディティ・チップの話ばっかりで、この業界はもうプロセッサーのイノベーションに関心はないのか、という苛立ちが募ります。
HPの元CEOフィオリナが、あろうことかAlpahPA-RISCなど、かっての名誉あるマイクロプロセッサー(とその技術者)達ををガラクタのように捨て去り、自社の技術基盤をIntel Itaniumに絞り込むという暴挙を行ってから、独自技術の気運が大きく損なわれ、IT業界の技術景色は随分寂しい状況に陥っています。
さらに最近では、HPがPC部門などのHW部門を切ってSWやサービスにシフトする、とも噂されています。
これは、ソフトやサービス偏重の先輩ビジネスモデル、IBMになりたいのだな、などと論評されていますが、
zPOWERというオリジナルなマイクロプロセッサーの開発に熱心なIBMにとっては迷惑な評論でしょう。
そのIBMも、パルミサーノがCEOになってからビジネスと技術のバランスが崩れがちになっていますが、今回のBlue Gene/Qの話題をみる限り、余り心配しなくてもいいのかもしれません。
IBMは、前のブログでも書きましたが、スパコンBlue WatersのNSC商談からのぎりぎりでの撤退で、技術の名誉をかなり傷つけてしまいました。投資コストに見合わないという理由でした。
来年には、20PetaFlopsというこのBlue Gene/Qを成功させて、不名誉を挽回するつもりなのでしょうか。
Blue Watersの世界最高速争いからの撤退決断も、代替策が選択可能な背景があったからなのでしょう。
(尤も、Blue Watersの一般商用機であるIBM Power775は引き合いが多いらしいですね。
なんでも、IBM WATSONの構成が80 Teraflopsで、IBM Power775のラック(96 TFLOPS)一つでカバーできるから、という理由だそうです)

IBMは世界一位を狙えるスパコンを3種類持っていました。
 一つは、2004年秋/2005年/2006年/2007年とTOP500世界一位を獲得したBlue Geneですね。
最初のモデルBlue Gene/Lが、2004年秋、永らく世界に君臨していたNECの地球シミュレータを破りました。
地球シミュレータが5120プロセッサで 35.86TeraFLOPSだったのが、BlueGene/Lは1万6000プロセッサで36.01TeraFLOPSと僅差でしたが、世界の流れを変えたのが、物理サイズが1/100、電力消費が1/30という、PowerPC 440 x2 をHPC用にチューンしたASICを大量に使った、圧倒的な省エネルギーの技術でした。

 今回、Blue Gene/QPowerA2(Prism, 後述)のSoCになりましたが、16コアチップの消費電力は55Wで、ピーク演算性能は204.8GFlopsです。これを10万個並べて20PetaFlopsを出すらしい。
Blue Gene/QはGlueless(外部チップ無なし)で、チップ上に接続機構を全て実装しているため、水冷の外部トーラス構成チップを必要とする京に比べても大幅な省エネルギー化が期待されています。
省エネルギーが必須の、次世代ZetaFlopsスパコンの有力候補でもあります。

 2つ目は2008年/2009年春でTOP500の一位を取ったRoadrunner
Cell BE (PowerPC+SPE x8)とAMD(x86)のハイブリッドで、GPGPUスパコンの先駆けのアーキテクチャです。
初めて1PetaFlopsの壁を破りましたが、省エネルギーでも一位になりました。

 3つ目がくだんのBlue Watersです。
10PetaFlops強を狙っていましたが、スパコン構成の全プロセッサーやI/O全てを統合する、Hubチップの強スケーラブル構造がネックになって、世界一位競争から脱落してしまいました。
256GFlops/チップのPOWER7を4個実装したモジュールとHubで、PERCS Building Block を構成します。

 以上、3つのスパコンは全てPOWERアーキテクチャをベースにしていますガ、其々でユニークな構成アーキテクチャと技術を作りこみ、お互いに切磋琢磨してきました。
面白いことに、2004年前後で、IBMでは次世代プロセッサーの候補がC1(POWER7)、A1(Cell BE)、A2(Prism)の3種類がありましたが、この全てでスパコンに挑戦していることです。

 このように、IBMには自社内に、ボトムアップ的な複数の競争者が存在し、其々が先駆的分野に侵攻することがよくあります。
極論すればファンドが確立していないアイディアが跋扈し、お互いの技術ディベートは日常です。
一方で、eDRAMのような共通の先進技術を共有して全体の開発コストを大幅に削減してもいます。
これが、次々とイノベーションを世に送り出せる、IBMの強みを支えている仕組みといえるでしょう。

 かって、米IBMポケプシーLabが開発する水冷大型メーンフレームがダウンサイジングに直面して大失速した時、IBMを救ったのは独IBMボーブリンゲンLabが開発していたCMOSマイクロプロセッサーでした。
また、z SystemにLiuxの成功をもたらしたのも独IBMボーブリンゲンLabの若い技術者のボランティアでした。
 同じようなことがIntelにもありました。
2004年、4GHz突破のPentium系Prescotの発表時点で、漏れ電力による熱暴走が発覚し、ムーアの法則を豪語していたIntelの大失態が顕在化しましたが、巧妙な戦略的転換を可能にし、その後のマルチコア化に素早く舵を切ることができたのはイスラエル・ハイファLabのcoreの存在でした。

 経営が、トップダウン的なリーダーシップでフォーカスする戦略的技術を絞り込むのか、それとも現場の開発・研究者の自主的・ボトムアップに乗っかかるのか、は、企業のカラーを決める大きな選択です。
この点で、小生には面白い経験があります。
ソニーの久夛良木さんの歓送会のテーブルで、IBMの強みについて議論が及びました。
小生は持論の競争原理を述べますと、久夛良木さんはそれを言下に強く否定されました。
優れたものごとを具現化する力は、トップダウンのリーダーシップなのだ!、と。
小生は、複雑系の経営論で知られていた元ソニー会長の出井さんと、久夛良木さんのスタンスの違いに、思いをはせていました。
複雑系は、勿論、雨後のタケノコようなボトムアップの生成の、勝ち組に乗る、という思想です。

2006年頃から、ベンチャー研究者の開発を、M&Aで自社内に取り込むという経営モデルが一方で進んでいますが、自社内技術者への投資とモチベーションの活性化で、微妙な経営判断が要求されるでしょう。


Transactional Memoryとは

 Transactional Memoryには、Softtware Transactional MemoryとHardware Transactional Memoryの2種類があります。ここでの論議はHardware Transactional Memoryです。
マイクロプロセッサーが処理対象とする一連の命令列のHWスレッドを、データベースのACID (Atomicity, Consistency, Isolation, and Durability) 属性を持ったトランザクションに似せてマクロ的に処理します。
マルチコア、マルチスレッド化の動向に沿った、将来の大容量処理プロセッサーのメモリー一貫性の方式設計として研究されています。
 マルチコア、マルチスレッド化の進展で、従来のスケールアップ型SMP (Symmetric Multiprocessing)での並列処理(parallel processing)、並行計算(Concurrency)の問題が一般化され、処理性能向上のためのより喫緊の課題として浮上しています。
 逐次処理とそれを並列実行したときの結果が一致するためには、メモリーの一貫性が必須ですが、それをソフトウェア・プログラムから担保するためのHW実装命令として、メーンフレームやx86の "compare and swap."命令や、PowerPC, MIPS, ARM, Alphaなどで使われるLL/SC (load-link / store-conditional)命令があります。
いわゆるロック命令ですが、これは潜在的デッドロックを内包したり、粒度が細かいために、プログラムからは扱いが大変困難で、一般のプログラマーの手に負えるものではありません。
これを、あたかもデータベース・プログラミングの乗りで容易に書けるのが、Transactional Memoryの第一のメリットとなります
図1に示すように、複数のスレッドを平行して走らせ、スレッドが終わった時点で処理中に読み取ったデータが他のスレッドで更新されていなければ正常終了となります。
仮に更新されていれば、スレッドはアボートし、初めから再実行となります。
オプティミスティックな排他制御で、プログラムは一貫性制御をHW任せにし、大変楽になります。

問題は、これが理屈だけでなく、リアルワールドでうまく動くのか、です。 パーフォーマンスはどうなるのか

 Hardware Transactional Memoryへの挑戦はSUN ROCKが有名ですが、SUNは結局ROCKの開発に失敗して、Oracleに買収される一つのきっかけを作ってしまいました。
SUN ROCKの開発者によると、うまくいったケースもあるけれども、大半はうまくいかなかった、ということのようです。 どうも汎用マイクロプロセッサーとしては一般解を作れなかったようですね。

 IBMなどでも前々から色々と研究はされていて、特に801 TM(例の世界初のRISCプロセッサーに似せた命名のようです)などという実装系で、効率や問題点を評価できる仕組みを持っているようです。
Transactional Memoryのブロックが小さいと、ハードウェア・スレッドの途中でオーバーフローしてしまいますし、逆に大きいと、他のスレッドによる更新の機会が頻発してアボートばかりで前に進めなくなります。
アプリケーションによってメモリー参照は千差万別となるのでしょうが、1Kから4Kぐらいが、適当なサイズだという話を聞いたことがありますが、詳細は知りません。

Blue Gene/Qの粒粒プロセッサー構成とTransactional Memory

 Blue Gene/Qは勿論Hardware Transactional Memoryです。
SUN ROCKが失敗して以来、Hardware Transactional Memoryがいつ業界に商品として顕われるのか興味が尽きませんでしたが、結局、IBMが先陣を切ったわけですね。

 Blue Gene/QPowerA2(以下A2とも省略)のSoCになりました.
これはコードネームがPrismと呼ばれていたチップがベースで、Charles Johnsonが、2010 ISSCCで”Wire Speed Processors ”として紹介した、PowerEN(Power Edge of Network) と同じA2コア・ベースで構成されています。
彼はPOWER4マフィアのメンバーで、2010年のIBM Fellowにノミネートされました。評価されたのですね

 PowerA2の特徴は、何といってもThroughput Computing指向のプロセッサーだということです。
A2コアは、Power v2.05 標準バイナリー互換の汎用プロセッサーですが、2命令発行、out of order無しのシンプルなコアになっています。
小生はこれを粒粒プロセッサーと呼んできました。
小さなプロセッサー・コアで、大量スレッドを低電力・低発熱でさばきます。
 これと同じというか、同時期に一歩早く業界に鮮烈なデビューを果たしたのがSUN T1 (Naiagara)です。
CMP(Chip MultiThreading)によるThroughput Computing ですね。
この両者は思想的には同じものです。
T1 (Naiagara)は、メモリー一貫性制御に弱く、結局Javaなど一般アプリケーションでは性能を出せず、泣かず飛ばずで終わってしまいましたが、PowerA2にも本来同じことがいえます。
 
 このてのプロセッサーは、かってはNetwork Processorという範疇で存在し、IBMでもPowerNPという商品ブランドがありましたが、 確か2002頃、PowerNP PowerPC を統合してしまい、PowerNPのIPは売り払ってしまったと思います。
IBMはSUNの失敗を横目で見ながら、先祖がえりする形でWire Speed Processors(図2参照)、としてデビューさせたわけです。
スマーター・プラネット時代のストリーム処理、ICT(情報通信融合)のコア・プロセッサーの位置づけです
なかなかの知恵者といえます。

小生の興味は、Blue Gene/Qで、IBMがこのPowerA2Transactional Memoryを実装した、という点にあります。一過性なのかどうか、興味が尽きません。

(下に続きます)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
  
  
  
  
  
 


 

         図1 Transactional Memory

 
 
 
 
 
 
 
 
 
 
 
               
                    

                                  図2 Wire Speed Processorsの位置づけ


 
 
 ISSCCの論文によると、PowerENは、4 threads/ATcoreで、1AT node (4x A2 64b cores, 2MB L2) /chip から 4AT node/chipとスケール可能で、さらに4チップSMPまで拡張できるため、スレッド数は4 cores/16 threads から 64 cores/256 threads までスケールするそうです。
またA2コアはPower v2.05 標準バイナリー互換の汎用プロセッサーで、AT node (4x A2 64b cores)はクロックとパワーが独立しているため、Node単位で自由に制御・組み合わせることが出来るそうです。
どこにでも組み込める、という意義があります。
また、暗号化、XML、データ圧縮など、多様なアクセラレータを実装することができます。

 Blue Gene/Qは、このPowerA2コアをベースに、4個の浮動小数点積和演算器を付加しています。、
POWERアーキテクチャではAXUという形で追加の演算ユニットを付加することができるようになっています。
このA2コアを、18個実装し、うち16個をアプリケーション・コアに、1個をLinuxのOS処理に、残りの1個を歩留まりのためのスペアとしてBoot時に選択できるようになっているそうです。
またPowerENのクロックは2.3GHzですが、Blue Gene/Qは電源電圧を下げ1.6GHzクロックで動かすこと
により消費電力を55Wに抑えているそうです。
ATコア当たり4個の浮動小数点積和演算器を付加し、32MB eDRAMのL2 cacheにサイズアップし、Glueless (外部チップ無なし)でチップ上に接続機構を全て実装しているのですから、相当低い消費電力です。
チップサイズは19 x 19 mm(360平方mm)、トランジスタ数は1.47B。
ピーク演算性能は204.8GFlopsで、これを10万個並べて20PetaFlops。

 さて、PowerENではAT node (4 x AT)毎に2MBのL2 cachesを独立して保持していましたが、Blue Gene/Qでは32MBのL2 cachesを16コア、64スレッドで共有します。
このL2 Cacheにマルチバージョン化という機能を取り入れ、Transactional Memoryを実装しています。
これは成功するのでしょうか。

HOT Chips 23の発表では、色々と工夫しているよ、ということですが、小生は十分な自信を感じます。
理由は、
- 元々メモリー一貫制御を意識していないBlue Geneアーキテクチャに対して、Transactional Memoryは新しいスパコン・プログラミング容易さの付加価値であること.
- Blue Gene/QでのTransactional Memoryはチップ内に閉じていて、A2マルチスレッド管理に、32MB L2を使ったメモリー一貫性制御を加えたものに見えること
- 16個のアプリケーション・A2コアとは別に、OS処理専用の独立したA2コアを持ち、並列性を乱す外部インターフェースからの割り込み処理や、チップ間での共有データ更新のノンブロッキングI/Oのスケジュールなどが、分離し易いこと
- 32MBと、比較的大容量のL2が使えること

いずれにしても、結果が楽しみです。
 
 小生の関心は、次世代汎用プロセッサーがどうなるのか、です。
メモリー一貫性制御では、cache snoopingが一般的ですが、MOESIなどの4~5状態のプロトコルが常識であるのに対して、POWER7では13状態のきめ細かさまで拡張されました。
このきめ細かなデータの状態管理で、256コア1対1直結の場合、POWER7では同時に20,000データ・ハンドリングのリオーダー整合性処理が可能ということです。
POWER8ではどんな仕掛けがでてくるのでしょうか。
IBMは3D実装を繰り返して強調していますが、eDRAMのイノベーションとともに、アーキテクチャにどのような影響を与えるのでしょうか。

小生は2007年に、IBM POWER6の発表に先立ってマスコミの方々に、”IBMがとんでもない事を考えている”、で報道されたような過激な技術動向メッセージを発信したことがありますが、楽しみですね。


 

 

    図3 Blue Gene/Qプロセッサーのチップ
合計18個のA2コアとeDRAM 32MB L2及びDDR3、I/O

 
 
 
     
 

     図4 PowerENプロセッサーのチップ
合計16個のA2コアとeDRAM 2MB L2 x4及びDDR3、I/O