米Intelは,米サンフランシスコで開催中の開発者向け会議「IDF(Intel Developer Forum)」で開発ツールに関するセッションを開いた。今回のIDFでは,次世代マイクロアーキテクチャのCoreアーキテクチャを発表し,今後はデュアルコア/マルチコア化の方向性を示したこともあり,コンパイラ,ライブラリ,デバッガ,開発支援ツールでも,マルチスレッド対応を強化することが強調された(図1[拡大表示])。
また,Mac OS向け開発ツールも用意することを明らかにした。2006年第2四半期(4月)に出荷予定で,現在IntelのWebサイトで評価用のベータ版がダウンロードできる。
Mac OS向けに用意されるのは,Intel Fortran Compiler,Intel C++ Compiler,Intel Math Kernel Library,Intel Integrated Performance Primitives,の4製品。Intel C++ Compilerは,Mac OS向けの統合開発環境「Xcode」に組み込んで使う(図2[拡大表示])。Mac OS 10.4.4,Xcode 2.2.1に対応する。
Intel C++ Compiler for Mac OSは,GCC(GNU Compiler Collection)と,コマンド・ライン・オプション,ソース・コード,バイナリについて互換性がある。objective Cには対応しないが,バイナリに互換性がある。
OpenMP 2.5に対応した自動並列化機能と,SSE/SSE2/SSE3命令を使った自動ベクトル化機能を備える。SSE/SSE2/SSE3は,Intel製プロセッサが備える,SIMD(Single Instruction Multiple Data)の浮動小数点演算命令セットである。
Intel Math Kernel Library for Mac OSは,Intel製プロセッサに高度に最適化された数学関数ライブラリである。そして,Intel Integrated Performance Primitives for Mac OSは,画像やオーディオ,ビデオ,音声認識といった,デジタル・メディア処理向けの最適化ライブラリである。マルチスレッド化されており,Intel C++ CompilerとGCC 4.0以降に対応する。
IDFのセッションでは,実際にMac OS向けのIntel C++ Compilerを使ったデモが行われた。デモは簡単な行列演算で,自動並列化機能を有効にしたときと無効にしたとき,行列演算にIntel Math Kernel Libraryのライブラリ関数を利用したときで,それぞれ実行時間を比較した。使用したコンピュータは,デュアルコア・プロセッサのCore Duo搭載iMacである。
まず,自動並列化機能を無効にしたときに演算にかかった時間が9.121秒だったのに対して,自動並列化機能を有効にしたときは4.492秒と,約2倍高速化した(図3[拡大表示])。また,Intel Math Kernel Libraryを利用したときは,1スレッドを動かしたとき(自動並列化機能が無効の状態)が4.18秒,2スレッドを動かしたときが2.28秒と,大幅に高速化した(図4[拡大表示])。
また,グラフィックスの描画デモでは,同じソース・コードをIntel C++ CompilerとGCCでコンパイルしたものを同時に動かして,Intel C++ Compilerでコンパイルした方が描画スピードが速いことを見せた(図5[拡大表示])。一般に,Intel C++ Compilerでコンパイルした方が約25%速いという。