Intelが研究用ながら48コアのプロセッサを発表。クラウドなどへの応用を考えているとか。Googleのサーバシステムが1チップになる日も近い?
前回「第114回 AMDが描くCPU+GPUの先にスパコンが見える?」において、「AMDはヘテロなマルチコアでGPUを取り込んだスーパーコンピューティングを目指す」というような話を書いた。一方、Intelの方も新たなコンピューティングを狙っていた。どちらかといえば、Intelの方がよりトレンドに乗ったバッチリのキーワードを冠している。「シングルチップ・クラウド・コンピュータ」である。いまや業界の動向は、「クラウドにあらずんばコンピューティングにあらず」、という雰囲気で世のITはすべからくクラウドに向かっている。Intelの方が、ネーミングからしてもよいところを突いている。
2009年12月に発表されたのは、48コアのチップである(インテルのニュース「将来のコンピューターの構造、PC やパーソナル機器の操作方法を一新するチップを公開」)。ただし、これはあくまで「研究用途」であって、商用化のプランが立っているものではない。これを大学やパートナー会社に配って「使い方」を研究してもらう、という方針のようである。
リリースを読むと、商品としては現行製品の延長上にある6コアとか8コアの製品を2010年に発表する、などというくだりがわざわざ入っている。昔、周波数という数字1つで比較していたように、最近はコアの数だけで「凄いか凄くないか」判断するような風潮もあるので、いま48コアなどと打ち上げてしまうと、実際の商品ラインのインパクトが薄まってしまうのではないかとか、8コアの次は48コアになる、といったように誤解されないかとか、Intelのマーケティングの誰かが恐れたためかもしれない。コアの数だけで話をしていると誤解する人が出てくるかもしれない、という危惧はそのとおりだろう。しかし、この48コアというのは、従来の「シンメトリなマルチコア」製品とはまったく異なるコンピューティングの形を目指していることは明らかである。
従来のマルチコアというのは、アーキテクチャ上は「何か特殊な機能に分化などせず」、主記憶を共有して、スレッドやプロセスごとにそれぞれ仕事を担うことで全体としてのコンピューティング性能を上げるというものであった。ご承知のとおり、このような伝統的なマルチプロセッサ・システムというものは、コアの数を増せば性能が線形に増すということはなくて、ある程度の個数を越えると、それ以上、コア数を増やしても性能は上がらなくなる。6コア、8コアといわれると、そろそろ限界が見えてくるのではないかという感じである。
それを乗り越えるためにどうしたらよいか。周波数に頼れなくなったいま、考えられることは1つである。並列度を上げるしかない。前回のAMDの場合は、「ヘテロなマルチ」の方向で、もともと並列度の非常に高いGPUという「異物」をCPUとジョイントさせることで、並列度を格段に上げようとしていた。当然、ハードウェアは機能で分化してくる。一方、Intelが目指しているのは「クラウド」である。たとえ同じコアを並べたとしても、「クラウド」となるとやはり機能でコアの役割も分化してくるはずといわなければならない。しかし、これは役割の分化であって、ハードウェアそのものに「異物」はいらないのかもしれない。
まだ、Intelのこのチップを使った応用自体は分からないので、「クラウド」の代表選手というべきGoogleのシステムを参考に考えればよいだろう。Googleなど、マスタとチャンク・サーバ、マスタとタブレット・サーバといった具合にそれぞれの処理階層で役割は分化してハードウェアに割り付けられているようだ。多分、Intelも「クラウド」といっているからには、Googleを支えているGFS(Google File System:Googleが1Pbytes以上のデータを扱うために開発した分散ファイル・システム)やBigTable(分散ストレージ・システム:データベースに類似するデータ格納システム)に類似するシステムは当然研究しているのだろう(まぁ、はやりだし、みんなやっている。それだけにこのチップを使って「研究」したいと希望する人も多いのではないか)。
そういうと単にGoogleのまねにとどまるようだが、しかしIntel独自のアドバンテージもある。Googleは「クラウド」という言葉もない時代に、数万台ものコアを結合したシステムを創造した。しかし、それは多数の基板とラックと配線でやったはずである。多分、初期は配線がのたくっていたのではないかと想像するのだが、どうか? きっと最近はシステマチックになっているのだろうが、それでも配線の量は大変かもしれない。
ところが、Intelはその「配線」を半導体チップの上に収めてしまえるわけだ。自社の世界で最も集積度の高い半導体プロセスを活用してである。集積度にせよ、速度にせよ、そしてエネルギーの消費と発熱にせよ、Intelの方がことハードウェアに関しては「最適な」ものを作れる可能性が高い。そして、チップにしてしまえば、そんな「クラウド」なシステムのコストが劇的に下がる道筋がついた、ということになる。いまは巨大なコンテナ1個のマシンがシングル・チップになるかもしれない。
そうなると、48個はスタートラインという数でしかない。日本語に翻訳されたニュースリリースにはその言葉が書かれていないが、クラウド・コンピューティングの思想をひと言でいうならば、「スケールアウト」である。「問題が大きくなったら、必要なだけ数を増やして乗り越える」という考え方だ。48個に縛られる必要はなく、480個でも10000個でもよくなければならない。伝統的な「シンメトリなマルチコア」ではそうはいかないが、それぞれの結合が緩く、「勝手に走れる」コアをネットワークでつないだような「クラウド」ならば、数を増やしただけ、性能を上げることができる。
しかし、従来型のソフトウェアとはまったく違う思想でシステムが構築されなければならないことも事実である(見掛けは「一皮」かぶせて従来型に見せかけるというスタイルもあるが……)。クラウド型の場合、与えられた問題は、ほかと相談せず勝手に(並列に)取り組める小分けした小問題に分割して、別々のコアに割り付けて実行させ、その結果を統合して1つの結果に再構成する、という考え方となる。
従前とどう異なるかは、データベースを実現する例で考えると分かりやすいかもしれない。従来型のリレーショナル・データベース・システムならば、データベースの設計段階で正規化を行って、冗長な重複したデータなどがないように設計するのが普通である。それぞれユニークなデータを格納している多数の表をキーで結びつけ、連携をとって処理していく。1つのトランザクションの間、一貫性を保つためにロックも必要である。多数のコアがてんでんバラバラに連絡なく処理できるものではない。ところが、クラウド型では、データが冗長だろうが、重複しようが、ともかく問題を多数に分割して同時に処理できるように配置するのが第一である。場合によっては丸々データを重複コピーしてしまってもよい。ともかく相互に関係なく並列に動作できるようにデータ構造を工夫する必要がある。また、複雑に連携をとるような操作は並列度を損なう可能性が高いから、見掛けはともかくハードウェアに近いレベルでは並列実行可能な単純な操作に帰着させないとならない。
クラウド型のコンピューティングシステムは、Googleが先べんを付け、いまやWeb世界では当たり前になっているが、いまのところ応用分野はWeb世界ばかりに見える。多分、Intelはそれを、デスクトップからモバイル、組み込みに至る処理の隅々にまで広めたいのではないかと思う。かって、大型機をワンチップのマイクロコンピュータにしたごとく、現在のクラウドのデータセンターに相当するようなコンピューティング・パワーをワンチップに収めたいのだ。当然、扱うべき問題も現在のクラウドが扱っているようなデータベース的なものだけではなく、端的にいえば脳との直接インターフェイスのような、膨大かつ並列度の極めて大きくなりそうな問題にまで踏み出したいのだ、と思う。確かにそのポテンシャルはある。できたらとしたらIntelの思う壺だが……。
日本では数少ないx86プロセッサのアーキテクト。某米国半導体メーカーで8bitと16bitの、日本のベンチャー企業でx86互換プロセッサの設計に従事する。その後、出版社の半導体事業部を経て、現在は某半導体メーカーでRISCプロセッサを中心とした開発を行っている。
「頭脳放談」
Copyright© Digital Advantage Corp. All Rights Reserved.