PR

 米Intelソフトウェア開発製品部でマーケティング・ビジネス・ディレクターを務めるJames Reinders(ジェームズ・レインダーズ)氏が,2009年10月2日に開かれたインテル・ソフトウェア・カンファレンスに合わせて来日し,日経ソフトウエアの取材に応じた。同社のプロセサ製品の性能を引き出すために,「インテル コンパイラー」を始めとするHPC(High Performance Computing)向けの製品ラインと,より多くの開発者に向けた「Parallel Studio」の2系統の開発ツールを提供していく方針を明らかにした。

(聞き手は原田 英生=日経ソフトウエア


写真●米Intelソフトウェア開発製品部のJames R Reindersマーケティング・ビジネス・ディレクタ

2009年5月に製品化を発表した「Intel Parallel Studio」は,既存の製品と何が違うのか。

 従来からあったC++コンパイラ,Fortranコンパイラ,VTuneパフォーマンス・アナライザー,スレッディング・ビルディング・ブロック(TBB),クラスターツールなどの開発ツール製品は,HPC(High Performance Computing)向けの製品ラインとしてこれまでと同様に提供していく。それとは別の,第2の製品系列となるのがParallel Studioだ。HPCラインはC++とFortranがあり,WindowsとLinuxとMac OSに対応し,世界最大クラスのコンピュータで利用できる。Parallel StudioはC++,Windowsのみで,マイクロソフトの開発ツール「Visual Studio」と統合して使うものだ。パラレル(並列)プログラミングをしようという多くの開発者にとって,Visual StudioとParallel Studioはベストなプラットフォームだ。Parallel Studioの評価版(30日間利用可能)をダウンロードして,すぐにでも使ってみてほしい。

 パラレル・プログラミングは,(1)設計,(2)コーディングとデバッグ,(3)検証,(4)チューニングという四つの工程で行われる。現在のParallel Studioには,コーディングとデバッグを支援する「Parallel Composer」,検証を支援する「Parallel Inspector」,チューニングを支援する「Parallel Amplifier」がある。設計をサポートするツールとして「Parallel Advisor」も開発中だ。これらを使うことで,ソフトウエアを高速にする作業を,効果的に行える。

なぜパラレル・プログラミングが必要なのか。

 コンピュータのプロセサがマルチコアになり,メニーコアになるからだ。現在販売されている消費者向けのパソコンはほとんどがデュアルコア(2コア)であり,2010年にはすべてがデュアルコア以上になる。そういう状況では,ソフトウエアが「スケーラブル」であることが必要だ。あるソフトウエアが,1コアで動作し,2コアではより速く動作し,4コアではさらに速く動作するようにしなければならない。

マルチスレッド・プログラミングと,パラレル・プログラミングという言葉はどのように使い分ければよいか。

 マルチスレッド・プログラミングは,ユーザーと対話するスレッドと,処理に時間がかかるスレッドを分けたりするような場合にも使う。これは,一つのタスクを並列化するわけではないので,並列実行による処理時間の短縮は得られない。パラレル・プログラミングは,並列実行による処理時間の短縮,一定時間であればより多くの処理を可能にすることを狙うものだ。技術的には,現在の並列プログラムは複数のスレッドを利用するので,それはマルチスレッドのプログラムである。

マルチスレッド・プログラミングのための仕組みは,既存の多くの開発ツールや,クラス・ライブラリなどが提供している。それでは不十分か。

 パラレル・プログラミングを行うときは,ツールとテクニックを注意深く選ばなければいけない。並列プログラムはナスティ(nasty,厄介)なもので,データの正しさ(correctness)がそこなわれることがある。「データ・レース(data race)」と呼ぶのだけれど,あるスレッドがメモリー上のある場所にデータを書き,別のスレッドがそこからデータを読むようなことがある。そのとき,まだ書いていないのに読み込んで意味のないデータになってしまったり,それを防ごうとフラグを立てて,デッドロックが生じたりする。間違った結果が出てきたり,止まったり,思うような性能が得られなかったりする。

 だからこそ我々のツールが役に立つ。Parallel Inspectorは最も堅ろうなメモリー・チェッカーで,危険な書き込みや読み込みを指摘してくれる。Parallel Amplifierには「ホットスポット分析」「コンカレンシ分析」「ロック・プロファイラ」といった機能があり,どこが性能改善の妨げになっているかを見付けてくれる。当社にはVTuneパフォーマンス・アナライザーなどでつちかったノウハウがある。我々以上にうまくやれる会社はない。