Column
クアッドコアへの移行前に、対応アプリケーションの確認を
インテルに続き、AMDのクアッドコアも2007年半ばには発売になる見込みだが、アプリケーションがクアッドコアに対応しなければ、プロセッサはその本領を発揮できない。
インテルのクアッドコア技術は市場に登場してから6カ月しかたっておらず、AMDもまだクアッドコアプロセッサのリリースを準備中であることから、多くのアプリケーションは、まだクアッドコアプロセッサに対応していない。
こうした中では、サーバの新規購入を考えているデータセンター管理者は、自社のアプリケーションが新しいマルチコアプロセッサを有効に活用できるかどうかを検討すべきだ。
「マルチコアプロセッサを搭載しているからという理由でサーバの購入を決めるのは禁物だ。ユーザーは具体的なニーズに基づいてアップグレードについて判断すべきだ」と、Microprocessor Reportのシニアアナリスト兼シニアエディターを務めるトム・ハーフヒル氏は語る。
実際、多くの独立系ソフトウェアベンダー(ISV)は、クアッドコア技術をフルに活用するアプリケーションをまだ設計していない。既存アプリケーションはシングルコア上で十分な機能を果たしているからだ。
3月に発表された調査によると、ISVは、業界のマルチコアプロセッサへの移行に対応する準備を整えていない。この調査は、AMDとピークストリームが2006年に共同で主催したWebセミナーの参加者を対象に実施された。ピークストリームは、開発者がアプリケーションをマルチコアプロセッサに移植するのを支援するアプリケーションプラットフォームを提供している会社だ。
この調査では、アプリケーションをマルチコアプロセッサに移植する予定がないか、あるいは移植計画を立てていないISVが50%以上を占めた。
また回答者の過半数が、自社のアプリケーションプログラマーのうち、マルチスレッドコーディングのノウハウを持っている者は25%に満たないと答えている。
「ソフトウェア開発者が手を打たなければ、これからもアプリケーションの大部分は、シングルコアに対応したものになる。このことを頭に入れておくことが重要だ。こうしたアプリケーションはマルチコアを活用することができず、実のところ、動作が遅くなってしまうかもしれない」と、ソフトウェア開発プラットフォームを提供するラピッドマインドのレイ・デポール社長兼CEOは語る。
以前はソフトウェアのパフォーマンスは、プロセッサのクロック周波数の高速化に比例して向上した。プロセッサのクロックが1GHzから2GHz、3GHzと上昇するにつれて、ソフトウェアもより高速に動作するようになり、開発者は開発のやり方を変える必要はなかった、とデポール氏は語る。
だが、発熱と消費電力の問題から、パフォーマンスの向上を目指すプロセッサメーカーはクロック周波数を引き上げるのをやめ、1つのプロセッサダイに搭載するコアを増やし始めた。
「今やインテルは80コアプロセッサの開発を進めている。ソフトウェア開発者にとってはますます厄介な状況になる。アプリケーションでマルチコアプロセッサの機能を利用するには、その動作の仕組みを踏まえて開発を行わなければならないが、コアが増えるほど、その仕組みは複雑になるからだ」(デポール氏)
もはやソフトウェア開発者は、プロセッサの進化の恩恵を自動的に受けることはできない。開発者はクアッドコアプロセッサに投資するユーザーのために、アプリケーションをマルチコアに対応させ、最大限のパフォーマンスを発揮させる方法を見いださなければならないと、デポール氏は語る。
アプリケーションを並列化し、処理を複数のコアに分散できるベンダーは、シングルコアからマルチコアプロセッサに移行すれば、製品のパフォーマンスを大幅に高めることができるだろう。だが、アプリケーションを並列化しない、あるいはできないベンダーは、マルチコアのメリットを生かせないと、クラビーアナリティクスのジョー・クラビー氏は語る。
一方、マルチコアによる並列処理を利用する必要がそもそもないアプリケーションもあり、ISVはそれらを作り直すには及ばない。
「すべてはアプリケーション自体にかかっている。例えば、Microsoft Wordを複数のコアで実行するメリットがあるかといえば疑問だ。Wordはシングルスレッドアプリケーションとして十分な機能を果たしている」(クラビー氏)
アプリケーションのマルチスレッド化
マルチコアを活用するアプリケーションの開発で大きなハードルとなるのが、マルチスレッド化というプログラミング手法だ。
タスクを並列処理するマルチスレッド化されたアプリケーションは、マルチコアプロセッサを搭載したシステムで効果的に動作する。
マルチスレッド化を行うには、ソフトウェア開発者はアプリケーションを、それぞれ同程度のワークロードを持ち、並列に実行可能な複数のタスクに分割することになる。
「開発者にとって、プログラムを分割するのは考え方として難しいだけでなく、2つか3つより多くのタスクへの分割となると、実現が非常に困難だ。デッドロック、同期、競合条件といった問題が、長年にわたって、このモデルを実装する上で悩みの種となっている」とデポール氏は語る。「しかも、4コアの活用に成功したとしても、8コアプロセッサが登場したら、また振り出しに戻らなければならない」
ラピッドマインドの「RapidMind Development Platform」は、アプリケーションの並列化を可能にし、多数のコア間でワークロードの規模を調整する。ソフトウェア開発者はこのプラットフォームを利用して、アプリケーションのどの部分が実行速度が遅く、複数のコア上で動作させることで大幅に高速化するかを特定する。こうした部分がこのプラットフォームに渡され、複数のコアに分散されると、デポール氏は説明する。
「ソフトウェア開発者はアプリケーションに集中でき、プロセッサコアの性能を引き出すことは、このプラットフォームに任せることができる」とデポール氏。
ピークストリームも、データの並列処理を実現するプラットフォーム「Stream Programming」を提供している。ソフトウェア開発者はこのプラットフォームを同社のWebサイトからダウンロードして、クアッドコア対応プログラムの作成に利用できると、同社の製品管理担当副社長、マイケル・マラニー氏は語る。
AMDは、プログラムを再設計してクアッドコアに対応させるソフトウェアベンダーへの協力に特化した部門を設置している。
「われわれは、すべてのソフトウェアが動作するようにクアッドコアプロセッサを設計している。だが、この技術がどれだけ活用されるかは、アプリケーションによって異なってくる」とAMDの企業向けソリューション担当ディレクター、マーガレット・ルイス氏は語る。
どんなアプリケーションがクアッドコアに対応しているのか
クアッドコアプロセッサに既に対応しているアプリケーションは、マルチスレッド化され、使用可能なすべてのコアを常に無駄なく使用するアプリケーションだ。
マルチプロセッササーバが長年提供されているため、高いパフォーマンスが要求されるアプリケーションのほとんどは、個々のプロセッサのコアが1つか複数かを問わず、マルチプロセッサを既にサポートしていると、イルミネータの主席アナリスト、ゴードン・ハフ氏は語る。
「確かに、アプリケーションによって並列化の度合いはさまざまだ。だが、現在では多くのアプリケーションでマルチスレッド化が進んでおり、いずれにしても、通常のサーバでは多数のプロセスが同時に動作している。このため、1つのアプリケーションがすべてのコアを使用しなくても、ほかの多くのアプリケーションやシステムのプロセスが、すべてのコアを使うことになる」とハフ氏は指摘する。ただ、デスクトップアプリケーションのマルチコアへの移行には時間がかかるだろう、と同氏は見ている。
仮想化、Java、大規模データベースや、複雑なことで知られるERPアプリケーションなどの利用による大きなワークロードは、デュアルコアからクアッドコアへの移行により、パフォーマンスが大幅に改善すると、インテルのパフォーマンスマーケティング担当マネジャー、ボブ・バローズ氏は説明する。
「クアッドコアを使えば、ワークロードのパフォーマンスは、デュアルコアの場合と比べて50~75%向上する」(バローズ氏)
クアッドコアプロセッサにより、デュアルコアの2倍のパフォーマンスが得られるわけではないのは、ソフトウェアアプリケーションの種類やメモリの帯域といった要素もパフォーマンスに影響するからだ。AMDの広報担当者は、クアッドコアプロセッサによるワークロードパフォーマンスの向上率は、30~70%だろうと話している。
また、例えばJavaのように、マルチスレッドをもともとサポートしている言語で作成されたアプリケーションもある。
「大手のパッケージソフトウェアベンダーは、マルチコア化の流れを見越して準備を進めてきた。だが、改善の余地が大きいアプリケーションを作っているベンダーもあり、彼らが改善できるかどうかは教育にかかっている部分が大きい。これは、アプリケーションのマルチスレッド化の難しさに起因する問題だ」と、サンマイクロシステムズのSolaris CoreおよびOpen Solaris担当ディレクター、ダン・ロバーツ氏は語る。
「大手のソフトウェアベンダーと小規模なベンダーの違いという面がある。効果的なマルチスレッドコードを作成するには特定のスキルセットが必要だが、そのスキルセットは、これまでそうしたコードを考慮する必要がなかった小規模な開発会社には欠けているかもしれない」とイルミネータのハフ氏は語る。「ワークロードの並列処理を本格的に活用するのは非常に大変な場合がある」
ロバーツ氏も、マルチスレッド化が進んでいないアプリケーションは、一般に、社内のソフトウェア開発者がマルチスレッド化手法を身につけていない大中規模の企業で作成されていると指摘する。
AMDやサンのような企業は、こうした開発者のマルチコアプラットフォームへの移行を支援する活動を展開している。
「サンは、オラクルやIBMのソフトウェア部門と同様に、アプリケーションのマルチスレッド化に取り組むソフトウェア開発者に協力しており、既に多くのアプリケーションがマルチスレッドに対応するようになっている」と、サンのISVエンジニアリング部門のシニアスタッフエンジニア、ヒューゴー・リベロ氏は語る。「われわれはソフトウェア開発者と話す場合、クアッドコアにとどまらず、多くのコアを活用できるプログラムを設計するよう勧めている。プロセッサの世界は日進月歩だからだ」
OSのマルチスレッド対応は問題なし
ほとんどのOSは既にマルチスレッドに対応しているため、マルチコアをフルに活用するための検討材料としては、OSは、その上で動くアプリケーションほど重要ではない、とAMDのルイス氏は語る。
「ノベルのOSや、Red Hat Linux、SolarisといったOSは、既にマルチスレッドのスケジューリングを適切に行える。最初からそのように設計されているからだ。スケーラブルなOSであれば、アプリケーションのワークロードを4つのコアに適宜割り当てることができる」とルイス氏。
「Solarisの場合、スケーラビリティが要求される市場向けに設計されており、最大128プロセッサ構成のサーバで動作する。マルチスレッド対応は、Solarisでは当たり前の機能だ」とサンのロバーツ氏は語る。
また、マイクロソフトの広報担当者によると、同社のサーバソフトウェア、例えばWindows Server 2003 Standard Editionなどは、シングルコア、ハイパースレッド、マルチコアプロセッサのいずれにも対応しているが、マルチコア上でより高いパフォーマンスを発揮する。Windows Serverの次期バージョンとなる「Longhorn」も同様だという。
だが残念ながら、アプリケーションでマルチコアプロセッサの性能を最大限に利用する必要がある場合に、OSに頼ることはできない。アプリケーションをマルチコアに対応させるのは、ソフトウェア開発者の責任だ。ソフトウェア開発者が何もしなければ、OSは、複数のアプリケーションが別々のコア上で動作できるようにするが、それでは個々のアプリケーションにおける真のパフォーマンス向上は実現されないと、ラピッドマインドのデポール氏は指摘する。
だが、ISVが既存のアプリケーションを作り直すのは望み薄だ。彼らはそうする代わりに、マルチコアプロセッサに対応した次世代アプリケーションを作成すると予想される、とAMDのルイス氏は語る。「新しいハードウェアが出てしばらくすれば、対応ソフトウェアも作りやすくなる」
TechTargetジャパンへのご登録はお済みですか?
**「TechTargetジャパン」メンバーシップのご案内**
会員登録を行うことで、300点以上の技術資料がそろったホワイトペーパーや興味・関心分野ごとに情報を配信するメールマガジン、ITmediaや@ITの特集記事がPDFでまとまって読める電子ブックレットなど、各種サービスを無料で利用できます。**会員登録(無料)はこちらから**
Copyright © ITmedia, Inc. All Rights Reserved.
この記事の著者
こんなメディアも見られています
TechTargetジャパンに関連する情報をお探しであれば、こちらのメディアもお役に立てるかもしれません。
ベンダーコンテンツ PR
From Informa TechTarget
SpecialPR
アクセスランキング
-
1
急増する「AIはこう言ってる」マン 判断を狂わせる「AI忖度」を防ぐには?
-
2
取手市がVDIと決別した理由 更改費用「4倍超」を約1.7倍に圧縮
-
3
「データストレージの活用方法」に関するアンケート
-
4
自宅のWi-Fiが「遅い」「途切れる」本当の原因は? Dellが推奨する鉄則
-
5
本当に安いPCで十分か? “すぐ重くなる”を防ぐノートPC選びの絶対条件
-
6
Claudeの不可視透かしに批判殺到 著作権消失や誤判定に潜む企業リスク
-
7
100億円の「Linux更新」を回避 みずほ銀行が選んだ“おきて破り”のRHEL延命策
-
8
221人調査で分かった「情シス最大のストレス」は?
-
9
LLMの「過学習」、正しく説明している文章はどれ?
-
10
レガシー基幹システムをSAPに統合 山善が突き止めた「標準化と個別最適」の境界線
ホワイトペーパーランキング PR
-
1
年収2000万「クラウドセキュリティのプロ」になれる資格とは
-
2
セキュリティソフトをすり抜ける標的型攻撃メール、不審メールの見破り方とは?
-
3
Windows Updateの通信集中で回線が逼迫、ネットワーク刷新事例に学ぶ解決策
-
4
財務を戦略的組織へ進化させるAI活用術、4つの主要な障壁と解消方法
-
5
「NAS」「SAN」「DAS」は何が違う? いまさら聞けないストレージの基礎
-
6
“あのファイル転送”で暗躍するノーウェアランサム
-
7
標的型攻撃メールを見破るには? サンプル文面を例に傾向を解説
-
8
商用利用の安全性を確保し大量のコンテンツを高速で生成する、AI活用の秘訣
-
9
マンガで解説、1日で生成AI環境を構築できるワークショップの中身とは?
-
10
Dark AIが台頭する時代の新発想、「より高度なAIで対抗する」具体的方法とは?
TechTargetジャパン SNS
インフォメーション
注目情報をチェック
TechTargetジャパンをフォロー