[an error occurred while processing the directive]

Fall Processor Forum 2005レポート

マルチコア普及への平坦でない道のり

カンファレンス会期:10月25日~26日(現地時間)

会場:米カリフォルニア州サンノゼ DoubleTree Hotel



 今回のFall Processor Forumはメインテーマとしてマルチコアを掲げた。正しくは「The Road to Multicore」である。

 なぜマルチコアプロセッサが必要となるのか。マルチコアプロセッサの利点とは何か。マルチコアプロセッサの普及に向けた課題は何か。このような疑問に答える講演が2本あったので、紹介したい。

 まず、マルチコアプロセッサがなぜ必要なのか、である。米Azul Systemsの共同設立者でCTOを務めるScott Sellers氏の講演「Unshackling Innovation Through Multicore Architectures」が、マルチコアの必然性を解説した。なおAzul Systemsは、ネットワークを通じて複数のプロセッシングハードウェアを接続したシステムの開発企業であり、ハードウェアの中核としてマルチコアプロセッサを開発している。

講演者のScott Sellers氏(米Azul Systems CTO) 講演タイトル「Unshackling Innovation Through Multicore Architectures」

●消費電力問題がマルチコアを促す

 なぜマルチコアなのか。言い換えると、なぜシングルコアではプロセッサチップの性能を上げられないのか。単純に言ってしまえば、消費電力が限界を超えてしまうからである。

 シングルコア、すなわち1個のプロセッサコアで処理性能を高めるには、動作周波数を上げるのが手っ取り早い。しかし半導体チップの製造技術として普及しているCMOSプロセスは、動作周波数に比例して消費電力が増えてしまうという欠点を抱えている。そして現在は、消費電力の大きさがマイクロプロセッサの性能向上を制限するようになってしまったとの認識をSellers氏は示した。

マルチコアに向かう理由。最も大きな理由は、消費電力と消費電力密度の増加を抑えるため x86系マイクロプロセッサの動作周波数と性能の推移。2002年以降は動作周波数の向上ペースが鈍っている。一方、消費電力は増加ペースが衰えず、消費電力が性能向上の足かせになってきた x86系マイクロプロセッサの発熱密度の推移。急激に高まっている

 半導体チップは電力消費によって発熱する。回路の動作速度は温度によって変化するので、放熱によって温度を下げてやらないと半導体チップの動作が保証できなくなってしまう。PCやサーバーなどのプロセッサでは、放熱はファンによる強制空冷が主流になっており、一部では伝導水冷が使われている。伝導水冷は放熱性能は抜群であるものの、かつては大型コンピュータのCPUに使われていた複雑な放熱技術である。普及するとは言い難い。

 そこでマルチコアプロセッサが登場する。複数のプロセッサコアに負荷を分散し、シングルコアに比べて動作周波数を抑えることで消費電力の増加を抑えるとともに、シングルコアでは達成できないような高い性能を実現する。これまでに、数多くのマルチコアプロセッサが開発されてきた。

 Sellers氏は、米Azul Systemsが開発したマルチコアプロセッサ「Azul Vega」の概要も紹介した。命令セットアーキテクチャを見せないという、非常に変わった設計のチップである。24個と数多くのプロセッサコアを搭載する。

マルチコアプロセッサの例 「Azul Vega」プロセッサ。性能やアーキテクチャなどの詳細は不明だが、仮想マシンに最適設計したコアだとしている。24個のプロセッサコアは8コアずつのグループに分かれており、8コアが2次キャッシュを共有する Azul Vegaプロセッサを組み込んだコンピュータシステムの例。16個のAzul Vegaプロセッサで384コアの対称型マルチプロセッシングシステムを構成する

●マルチコアでも消費電力問題は解消されない

 ただしマルチコアプロセッサでも、消費電力の問題がなくなるわけではない。今後は、微細化によって半導体チップのリーク電流が急増する傾向にある。単純にプロセッサコアを増やしただけでは、消費電力の急増傾向を回避できないとSellers氏は指摘する。問題をクリアするには何らかの工夫が必要となる。

 またプログラムによっては、マルチコアによる負荷分散がうまくいかないことがある。順番に処理しなければならないタスクは、1個のプロセッサコアで処理せざるを得ない。このようなタスクがプログラムにある割合以上で含まれていると、マルチコアによる性能向上があまり期待できなくなる。

 このほかにもマルチコアプロセッサは課題を抱えている。

 ・用途によってはソフトウェア開発の手法を変えないと性能が出にくい
 ・プロセッサコア間通信のオーバーヘッドがある
 ・負荷を均一に分散する仕組みが必要
 ・プロセッサバスやメモリバスに高い性能が要求される

などである。

半導体製造技術の微細化と発熱密度の推移。180nm~130nmを底に、リーク電流が増大することによって発熱密度が増加していく アムダールの法則。プログラム中で順番に処理しなければならない部分(並列実行できない部分)の割合が増えると、並列処理ハードウェア(マルチコア)での処理性能が上がらない マルチコアが抱える、さまざまな課題

●ソフトウェアプログラムをマルチコアに適合させる

 マルチコアに関する最も大きな課題は、ソフトウェアプログラミングだと言われている。米MicrosoftのSoftware ArchitectであるHerb Shutter氏は「Software and the Concurrency Revolution」のタイトルで基調講演し、ソフトウェアプログラミングの並列化に関する現状を解説した。

 マルチコアプロセッサの性能を最大に引き出すためには、ソフトウェアプログラムをできるだけ並列化し、各プロセッサコアに負荷を均一に分散させなければならない。並列化はプログラムの開発作業に大きな影響を与える。プロセッサのマルチコア化は、ソフトウェア産業に非常に多くの作業を要求することをShutter氏は強調した。

 一方で、シングルプロセッサの性能向上に頼っていたのでは、アプリケーションの処理速度は上がらなくなってきた。ソフトウェア開発者が、ハードウェアの性能向上をそのまま享受できた時代は終わったとの認識を、Shutter氏は示した。

講演者のHerb Shutter氏(米Microsoft Software Architect) いきなり結論である。ソフトウェア開発者の間では並列化の努力がずっとなされている。ハードウェア産業は、ソフトウェア産業が並列化のためになすべきことを過少に考えているのではないか、との厳しいコメントがある 「無料ランチの終焉」。ソフトウェア開発者が何の対価も払わずに、プロセッサの性能向上を享受できた時代は終わった。マルチコアプロセッサに適したプログラミングという対価を払わなければ、今後のアプリケーションはそれほど速くならない

 また現状では、並列化の問題は主にクライアント側のアプリケーションソフトウェアにあり、サーバー側のアプリケーションソフトウェアでは並列化の問題は解消されているとShutter氏は述べた。現在は、並列化を進めるための努力が、各所でなされているという。

並列化の問題はクライアント側で残っている。サーバー側のアプリケーションソフトウェアでは解消済みとした シーケンシャルなプログラムとコンカレントなプログラムの違い
クライアント側のアプリケーションソフトウェアにおけるシーケンシャル(逐次処理)からコンカレント(並列処理)への流れ 並列化プログラミングを普及させる各種のツール

□Fall Processor Forum 2005のホームページ(英文)
http://www.instat.com/fpf/05/index.htm
□Azul Systemsのホームページ(英文)
http://www.azulsystems.com/
□関連記事
【4月21日】CPU処理もネットワーク上で共有、米Azulの次世代アプローチ(ENTERPRISE)
http://enterprise.watch.impress.co.jp/cda/hardware/2005/04/21/5130.html
【4月19日】米Azul Systems、アプリケーションサーバー向け仮想マシンアプライアンス(ENTERPRISE)
http://enterprise.watch.impress.co.jp/cda/foreign/2005/04/19/5098.html

(2005年10月27日)

[Reported by 福田昭]

【PC Watchホームページ】


PC Watch編集部 pc-watch-info@impress.co.jp
お問い合わせに対して、個別にご回答はいたしません。

Copyright (c)2005 Impress Watch Corporation, an Impress Group company. All rights reserved.