米Intelのフェロー兼ソフトウエア/ソリューション部門のジェネラル・マネージャDavid Kuck氏が4月7日から東京で開催される開発者向けカンファレンスIntel Developer Forumのために来日し,記者との会見に応じた。インタビューの中で「今後プロセッサがマルチコア時代を迎えるに当たって,ソフトウエア開発もマルチスレッド・プログラミングが主流になる。Intelはツールでそれをサポートしていく」と語った。概要は以下の通り。

●プロセッサの性能を向上させるには,動作周波数の向上だけでなく,1つのプロセッサに複数のコアを搭載したマルチコアの設計が標準的になる。Intelは2005年に初めてマルチコア・プロセッサをリリースする。将来はマルチコアから「メニーコア(many-core)」へと,搭載するコアの数がどんどん増えていく。10年後はコアの数が100個くらいまで増える見込みだ。

●マルチコア・プロセッサの性能を引き出すには,プログラムがマルチスレッド対応になっている必要がある。今後,ソフトウエア開発者は,マルチスレッド・プログラミングをするケースがますます増えるだろう。それに伴って,マルチスレッドにおけるパフォーマンスの最適化やデバッグをするためのツールとライブラリが重要になってくる。われわれは10年以上前から「VTune」などの様々なツールやライブラリを販売して,開発者のマルチスレッド・プログラミングにこたえてきた。今後もプロセッサの進化に応じて,様々なツールやライブラリを提供していく予定だ。

●パフォーマンスの最適化に関しては,「OpenMP」による開発が優れており推奨している。OpenMPとは,プラットフォームに依存しない並列プログラミング用API(アプリケーション・プログラミング・インターフェース)の仕様である。われわれのツール「スレッド・プロファイラ」はWindows,Linuxに加えて,このOpenMPにも対応している。OpenMP対応のIntel製ツールとライブラリを使えば,パフォーマンスを分析して,それに応じてスレッド・スケジューリングのアルゴリズムを切り替えられる。その気になれば開発者が,OSが管理するスレッド・スケジューリング以外の新規のアルゴリズムを自ら書くことも可能だ。OpenMPになじみのある開発者はまだ少ないが,WindowsやLinuxのスレッド・プログラミングと比べて表現力が高いなど様々な利点がある。

●コンパイラについていえば,現在のIntelやほかのベンダーのコンパイラの最適化機能には,まだまだ向上の余地があるのは事実だ。特にIA64用のコンパイラは,もっと高速に最適化できると思う。ただし,ユーザーの多くは,パフォーマンスよりも機能を重視している。Intelのコンパイラ開発グループにはかなりの人員を割いているが,それでもすべてのユーザーを満足させるようなものを作ることは不可能だ。

●デバッグに関しては,Intelの「スレッド・チェッカー」などのデバッグ支援ツールが効果的だ。従来のブレーク・ポイントによるデバッグ作業では,マルチスレッド・プログラムにおけるリソースの競合やデッドロックといった再現性の低いバグを取り除くのは不可能に近い。しかし,スレッド・チェッカーを使えば,並列実行をシミュレートし,問題が生じた時点で何が原因かをコード・レベルで表示してくれる。このツールもまたWindows,Linuxに加えてOpenMPをサポートしており,OpenMPのほうがより適切に機能する。

(山本 哲史=日経Windowsプロ

【IT Pro-Windows Reviewメール】を好評配信中。申し込みはこちら