パフォーマンスの要求されるアプリケーション開発に向けたコンパイラと高速ライブラリがセットに |
ソフトウェア開発において、多くの場で求められる課題の1つに「ソフトウェアの実行速度向上」がある。かつてはソフトウェアのチューニングというと、経験を持つ熟練技術者の独壇場であったが、近年ではCPUやハードウェアが複雑化しているため、人力でチューニングを行うよりもコンパイラの最適化機能を利用したり、あらかじめ最適化されたライブラリを利用するほうが良好な結果が得られることが多い。インテルの「インテル Composer XE」はこのような「コンパイラやライブラリによるチューニング」に向けた強力な最適化機能や高速な同梱ライブラリを備えるコンパイラ製品である。
PCの進化によりパフォーマンスチューニングも複雑に | ||
今日ではPCの性能向上が進み、かつては考えられなかったような高性能PCが安価に入手できるようになった。それに伴い、CPUなどPCを構成する要素は非常に複雑になっている。高性能なハードウェアが安価に利用できるというのは喜ばしいものの、開発者の視点から見た場合、このような複雑化したシステムのパフォーマンスを引き出すのは容易ではない。CPUやハードウェアに関する非常に深い知識が必要となり、メモリアクセスのタイミングやデータ配置、ループ内で実行する処理など、多くの要素を考慮しつつプログラミングを行わなければならないからだ。
このような状況を受け、最近ではCPUが効率的に実行できるような最適化されたコードを出力する機能がコンパイラに搭載されている。そのなかでも、特にインテルCPU向けに特化した最適化機能を特徴とするコンパイラ製品がインテルの「インテル Composer XE」である。
高度なチューニングを簡単に利用できる「インテル Composer XE」 | ||
インテル Composer XEは、その名のとおりインテルが開発しているコンパイラ製品だ。Linux版とWindows版が用意されており、C/C++コンパイラ「インテル コンパイラー XE 12.0」、およびFortranコンパイラ「インテル Visual Fortran Composer XE 2011 Windows版」もしくは「インテル Fortran コンパイラー XE 12.0 Linux版」といったコンパイラと、算術ライブラリ「インテル MKL」、マルチメディア/データ処理ライブラリ「インテル IPP」、マルチスレッドアプリケーション構築ライブラリ「インテル TBB」が含まれている。また、デバッグ用のツールも同梱されており、Windows版にはVisual Studioのプラグインとして利用する「インテル Parallel Debugger Extension」が、Linux版はスタンドアロンで動作するGUI/CUIデバッガ「インテル デバッガー」が付属している。
インテル Composer XEの特徴としては、インテルの最新CPUが持つSSE/AVX機能への対応やOpenMP 3.0およびインテル Cilk Plusといった並列プログラミング技術のサポート、そして自動ベクトル化や自動並列化、ハイパフォーマンス最適化機構(HPO)といった強力な最適化機能が挙げられる。
インテルのCPUには数値演算を高速に実行するための「SSE」や「AVX」と呼ばれる機能が搭載されており、インテル Composer XEではSSE/AVXに含まれる「パックド演算命令」を使用して複数のデータに対し一括して演算処理を行う「自動ベクトル化」機能を備えている。プログラム中のループ部分を自動的に複数スレッドで並列実行させる「自動並列化」機能も、ほかのコンパイラにはないユニークな機能だ。これらを利用することで、従来はハードウェアに精通した熟練技術者でないと難しかったチューニングを自動、もしくは簡単な操作だけで利用できるようになる。
また、インテル Composer XEはVisual StudioやGCCとコンパイルオプションおよび出力するバイナリ形式で互換性を備えており、Visual StudioやGCCで開発していたプログラムであれば、ほとんど修正を加えることなくコンパイルが可能だ。Windows版のインテル Composer XEではVisual Studio 2005/2008/2010用のプラグインが同梱されており、クリック操作だけで既存のVisual Studioプロジェクトをインテル Composer XEでコンパイルできる。また、コンパイルオプションなど各種設定はGUIで行うこともできる。なお、インテル Composer XE 日本語版ではインストーラや各種メッセージ、ユーザーインターフェイスの大部分が日本語化されており、扱いやすくなっている。
Visual Studio用のプラグインを使用することで、日本語のGUIで各種設定を行える |
インテルCPUに最適化された高速ライブラリも付属 | ||
インテル Composer XEのもう1つのメリットは、専門家によりあらかじめチューニングされたライブラリが付属する点だ。例えばインテル MKLは、BLASやLAPACKといったベクトル/行列演算APIや高速フーリエ変換(FFT)、各種統計処理などが実装されたライブラリだ。MKLはインテル製CPUに向けた最適化やマルチスレッド化が行われており、実行するCPUの種別に応じて自動的に最適なルーチンを実行するようになっている。
また、インテル IPPは画像処理や映像処理、コーデックなどを含む信号処理、音声認識、データ圧縮、暗号化、文字列処理といった、さまざまな分野で利用できる関数を提供するライブラリだ。こちらもMKLと同様、実行環境に応じて適切なコードが実行されるよう最適化が行われている。
インテル IPPに含まれる関数群 |
そのほか、高度に最適化された正確な算術関数を含む算術ソフトウェアライブラリや、SSEやAVXを用いた数値演算が実装された「インテル C++ クラス・ライブラリー」というライブラリも利用できる。これらとインテル Composer XEの最適化機能と組み合わせれば、最小限のソースコード修正でソフトウェアのパフォーマンス向上を実現できるだろう。これらのライブラリは別途のライセンス契約や追加料金を必要とせず利用できるのもポイントだ。
さまざまなアプリケーション開発で有用 | ||
インテル Composer XEの大きな特徴は「インテルの最新CPUに対応」や「SSE/AVXサポート」、「強力な最適化機能」などで、これらの機能は科学技術アプリケーションや動画/音声/画像などを扱うマルチメディア処理アプリケーションなどの分野で特に有用である。しかし、それ以外の分野でもインテル Composer XEは有用である。例えばIPPには幅広い分野のアプリケーションで利用できるルーチンが含まれており、デスクトップアプリケーションやサーバアプリケーションといった分野でも役立つ。デバッグツールなどアプリケーション開発全般で有用なツールも含まれており、高いパフォーマンスが必要とされるアプリケーション開発はもちろん、一般的なアプリケーション開発においても有用な開発ツールといえるだろう。
なお、インテル Composer XEに加え、パフォーマンス解析ツール「インテル VTune Amplifier XE」やメモリ/スレッド関連の問題検出ツール「インテル Inspector XE」といったツールを同梱した「インテル Parallel Studio XE」という製品も用意されている。こちらを購入したユーザーは別途インテル Composer XE 日本語版をダウンロードして利用できるとのことなので、より高度なパフォーマンス解析やデバッグ機能を利用したい方は検討してみてはいかがだろうか。
提供:エクセルソフト株式会社
アイティメディア 営業企画
制作:@IT 編集部
掲載内容有効期限:2011年02月23日
ダウンロード
関連リンク
関連記事
並列処理に強い開発ツール「インテル コンパイラー」 (@IT Special PR)
並列化に特化した開発ツールセット
「インテル Parallel Studio」 (@IT Special PR)
インテル、8コアプロセッサでハイエンドRISC代替も視野に (@IT News)
インテル C++/Fortranコンパイラ9.0、マルチコア対応強化 (@IT News)
ItaniumRプロセッサーの性能を最大限に引き出すアプリケーションの最適化とは (@IT Special PR)