![]() |
HPC/並列プログラミングポータルでは、HPC(High Performance Computing)プログラミングや並列プログラミングに関する情報を集積・発信しています。 |
[記事一覧を見る]
テストプログラムの実行結果をまとめたものが、次の表2である。インテル C++ コンパイラーでコンパイルしたプログラムをVisual C++でコンパイルしたものと比べると、まず並列化を使用しない場合でも、プログラムの実行にかかった時間が半分以下にまで短縮できていることが分かる。さらに並列化を有効にした場合、実行時間は4分の1程度にまで短縮できている。
コンパイラ | 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はある程度高いスペックのものを用意すべきだろう。
[PageInfo]
LastUpdate: 2009-11-18 20:34:58, ModifiedBy: hiromichi-m
[Permissions]
view:all, edit:login users, delete/config:members