マルチコアのプロセッサの普及に伴い、アプリケーション開発における並列化への対応の必要性が言われている。このほど、C/C++開発者を対象に、インテルが開発したMicrosoft Visual Studio C++向けの並列化実装ツールセット「インテル Parallel Studio」(Parallel Studio)が5月27日にリリースされた。2009年5月13日~5月15日の3日間、東京ビッグサイトにて開催された「ソフトウェア開発環境展」(SODEC)のエクセルソフト株式会社ブースにて、そのデモンストレーションを実施していた。
![インテルコンパイラ製品の展示で賑わう、SODECのエクセルソフト社ブース](http://cz-cdn.shoeisha.jp/static/images/article/3964/fig00.jpg)
3つの並列化ツールを融合した「インテル Parallel Studio」
Parallel Studioは、複数のコアを持つプロセッサにおいて、各コアを効率よく使うアプリケーションを開発するための4つのツール「インテル Parallel Composer」(Parallel Composer)、「インテル Parallel Inspector」(Parallel Inspector)、「インテル Parallel Amplifier」(Parallel Amplifier)、そして「インテル Parallel Advisor」(Parallel Advisor)からなる製品セットの総称で、このうち来年リリース予定のParallel Advisorを除く3つの製品が今回リリースされた。いずれもMicrosoft Visual Studio C++(Visual Studio)のプラグインとして、Visual Studioの画面から呼び出して使用する。
![今回のリリースでは、3つのツールから「Parallel Studio」が構成されている。](http://cz-cdn.shoeisha.jp/static/images/article/3964/fig01.jpg)
Parallel Composerは、並列化のためのC/C++コンパイラーとライブラリで、マルチコア・プロセッサに最適化されたアプリケーションのコーディングをサポートする。コンパイラーは、既にリリース済みの「インテル C++ コンパイラー」を基にしており、OpenMPやラムダ関数などをサポートしている。並列化のためのライブラリとしては、C++のコードを簡単に並列化するためのテンプレート・ライブラリー「インテル スレッディング・ビルディング・ブロック」(TBB)や、画像・信号処理において、並列化に最適化された関数が揃っている「インテル インテグレーテッド・パフォーマンス・プリミティブ」(IPP)がある。また並列化されたコード用にVisual Studioのデバッガを拡張する「Parallel Debugger Extension」も含まれる。
![「Parallel Composer」では、あらかじめ並列化に最適化されたライブラリも充実している。](http://cz-cdn.shoeisha.jp/static/images/article/3964/fig03.jpg)
Parallel Inspectorは、アプリケーションを分析してスレッド特有の潜在的なエラーやメモリーエラーを検出する機能を持ち、データ競合や、デッドロック、メモリーエラーといったエラー要因の検出作業を支援するツール。メモリーエラー検出機能については、これまでの製品になかったもので、ユーザーからの要望も多かったという。
![「Parallel Inspector」では、エラー検出の閾値の設定も容易に行える。](http://cz-cdn.shoeisha.jp/static/images/article/3964/fig05.jpg)
Parallel Amplifierは、アプリケーションのパフォーマンス低下原因の一つであるhotspot(処理にかかる時間が多い箇所)を検出し、アプリケーションのチューニングに活用できるツール。開発したアプリケーションを分析し、Concurrency(いくつのコアを活用しているか)や、処理の待ち時間などをVisual Studioの画面から呼び出してグラフ表示できる。
![「Parallel Amplifier」では、ステップごとの処理時間やコアの活用度などがモニタリングできる](http://cz-cdn.shoeisha.jp/static/images/article/3964/fig04.jpg)