HPC/並列プログラミングポータルでは、HPC(High Performance Computing)プログラミングや並列プログラミングに関する情報を集積・発信しています。

新着トピックス

テストプログラムの実行結果

 テストプログラムの実行結果をまとめたものが、次の表2である。インテル C++ コンパイラーでコンパイルしたプログラムをVisual C++でコンパイルしたものと比べると、まず並列化を使用しない場合でも、プログラムの実行にかかった時間が半分以下にまで短縮できていることが分かる。さらに並列化を有効にした場合、実行時間は4分の1程度にまで短縮できている。

表2 テストプログラム実行結果
コンパイラ1回目2回目3回目平均
最適化無し(Visual C++)66.290秒65.815秒65.955秒66.020秒
Visual C++6.650秒6.660秒6.685秒6.665秒
GCC 3(-O2)20.685秒20.686秒20.686秒20.686秒
GCC 3(-O3)9.844秒9.843秒9.828秒9.838秒
GCC 4(-O2)9.438秒9.438秒9.421秒9.432秒
GCC 4(-O3)20.358秒20.341秒20.342秒20.347秒
インテル C++ コンパイラー3.120秒3.165秒3.110秒3.132秒
インテル C++ コンパイラー(並列化)1.730秒1.775秒1.745秒1.75秒

コンパイラを変えるだけで高速化が実現

 このテスト結果が示すとおり、インテル C++ コンパイラーはほかのコンパイラと比較し、より高速で動作するバイナリコードを生成できる。Visual C++との互換性も非常に高く、インテル C++ コンパイラーを導入し、IDEで簡単な設定変更を行うだけで手軽に高速化が行えた。

 ただし、ソースコードによっては、インテル C++ コンパイラーをそのまま使うだけでは劇的な高速化が期待できない場合もある。そこで加えて活用したいのが、インテル コンパイラーに付属するMKLやIPPといった高速ライブラリである。真にインテル コンパイラーのパフォーマンスを享受したいのであれば、このようなライブラリの活用も検討すべきだろう。

 また、いくつか注意すべき点もある。まず、インテル コンパイラーは高度な最適化を行うため、より多くのメモリやコンパイル時間を必要とするようだ。通常気にする必要はないとは思うが、大規模なアプリケーションをコンパイルする場合、最適化の設定によっては非常に多くのメモリが必要となる。そのため、開発に使用するPCはある程度高いスペックのものを用意すべきだろう。