CW_Welcomeバナー

マルチコア・コンピューティング

RSS

【解説】

マルチコア・プロセッサの普及で激変するアプリケーション開発の現場

最適化ツールでデベロッパーにのしかかる負担を軽減せよ!
(2008年11月11日)

 企業コンピューティングの世界に広く普及してきたマルチコア・プロセッサだが、それに伴って、対応ソフトウェアを開発するデベロッパーの現場も大きく様変わりつつある。だが、ソフトウェアをマルチコア対応にして処理性能を最大限に引き出すことは口で言うほど簡単ではない。コンカレンシ(並行処理)や潜在的なパフォーマンスのボトルネックなどの問題を解消しなければならないからだ。調査会社IDCがツール・ベンダーの米国Coverityの依頼で行った最近の調査によれば、すでに71%の企業が、マルチコアCPU搭載ハードウェア向けのマルチスレッド・アプリケーションを開発中だという。



Paul Krill/InfoWorld オンライン米国版

 マルチコア対応ソフトウェア開発に着手するデベロッパーはまず、全社レベルでソフトウェアの導入を支援してもらうというコミットメントを取り付ける必要があると提言するのは、IDCのアナリスト、メリンダ・バロウ(Melinda Ballou)氏だ。

米国IDCのアナリスト、Melinda Ballou氏

 「コミットメントを得るというアプローチは、全社レベルの導入を成功に導くために不可欠であり、プロジェクトの観点からも、質の高い開発やマネジメント、(あるいは)チェンジ・マネジメントを促す」と、同氏は力説する。

 マルチコア・プロセッサの人気が高まっているのは、シングルコア・チップの熱量と性能が限界に達したからであり、消費電力の問題もマルチコア・チップの開発促進に寄与していると考えられる。実際、Intelなどのチップ・メーカー各社はCPUにコアを追加し続けている。

 Microsoftのパラレル・コンピューティング・プラットフォーム担当ジェネラル・マネジャー、リン・ヒル(Lynne Hill)氏は、「この20年間あるいはそれ以前のコンピューティングの歴史を振り返ってみると、クロック周波数の向上によるコンピューティング・パワーの増強が真の意味で実現した時代だった」としたうえで、次のように指摘する。

 「今日、われわれの前には(消費電力という)“壁”が立ちはだかり、PCの処理能力をさらに向上させるためにハードウェアを改良しなければならない段階にきている」

並列処理エラーを検出する米国Coverityの「Thread Analyzer for Java」

 だが、ハードウェアの改良が進むにしたがって、アプリケーションでの対応を迫られるデベロッパーには、新しいテクニックを習得し、新しいツールを使ってパフォーマンスを最大化しなければならないという負担がのしかかっている。

 複数の命令を並行処理するマルチコア・プロセッサの仕組みは、シングルコアのそれとは根本的に異なる。マルチコアに対応するソフトウェアでは、命令を並行処理できるように分割しなくてはならないからだ。

米国CoverityのCTO、Ben Chelf氏

 この点について、マルチコア開発用ツールを提供する米国CoverityのCTO(最高技術責任者)、ベン・シェルフ(Ben Chelf)氏は、「マルチコア対応プログラムは、すべてのコアを有効利用し、かつ(それらのコア上で)命令を同時実行できるものでなくてはならない」と強調する。

 「これまでのソフトウェアはシングルコアを前提として設計されていた。それを複数のコア上で並列に動作させるようにする――これがデベロッパーが直面する課題だ」(同氏)

米国Azul SystemsのDistinguished Engineer、Cliff Click氏

 米国Azul Systemsで「Distinguished Engineer」の肩書きを持つクリフ・クリック(Cliff Click)氏は、マルチスレッド・プログラムの開発について、「一見難しそうには見えないが、実際はかなりハードだ」とその難しさを指摘する。

 Intel、Microsoft、Sun Microsystemsなどからは、このような開発者を支援するマルチコアにかかわる問題の解決と並列プログラミングを支援する製品がすでに提供されている。

記事詳細テキストバナー

ページの先頭へ戻る