メニーコアと格闘ブログ:デバッグ版 実行結果修正と、最適化オプション

出典: トータル・ディスクロージャ・サイト(事実をありのままに)

ベンチマーク修正

昨日7月29日掲載したベンチマークは、1コアでの計算結果に“オリジナルのソースコード”を使用したものを基準にグラフを記載しました。しかし、並列化したプログラムとロジックが異なるので、正しい比較となっていません。 したがって、mpirunするときのオプションを “np 1” として、1コアの計算時間を算出し、その結果を元にグラフを書き直します。

ファイル:zu1.jpg

コンパイルオプションについて

私はいつも、アプリケーションの並列化をするときには、コンパイルオプションを“-O0”とします。理由は、並列化による計算速度上昇と、コンパイラによる最適化による速度上昇を区別するためです。しかし、実用アプリケーションの場合、“O2”“O3”などのオプションをつけてコンパイルするのが普通だと思います。ここでは“O1”“O2”“O3”オプションをつけてコンパイルし、実行した結果を示します。コンパイラは、IntelCompiler9.1.052を使用して、このアプリケーションをコンパイルした場合の結果です。コンパイラのバージョンにより、結果は異なります。

ファイル:zu2.jpg

ファイル:zu3.jpg

ファイル:zu4.jpg


以下、コンパイラのリファレンス(当記事下部にリンクあり)からの抜粋です。

  • O0はすべての最適化を無効にします。IA-32 およびインテル EM64T 対応システムでは、このオプションは -fp オプションおよび -fmath-errno オプションを設定します。このオプションを指定すると、一部の warn オプションは無視されます。これは、-debug (with no keyword) を指定した場合のデフォルトです。
  • O1は速度の最適化を有効にし、コードサイズを大きくするだけで高速化に影響を与えるような一部の最適化を無効にします。
  • O2は速度の最適化を有効にします。一般的に推奨される最適化レベルです。Itanium ベース・システムでは、このオプションは、グローバル・コード・スケジューリング、ソフトウェアのパイプライン化、プレディケーション、およびスペキュレーションを含む速度の最適化を有効にします
  • O3はO2 の最適化に加えて、プリフェッチ、スカラー置換、ループ変換、およびメモリーアクセス変換などのより強力な最適化を有効にします。

コンパイルオプションについての詳細


この記事へのコメントをお寄せください

  • サイトへの書き込みに差し支えございましたら トータルディスクロージャーサイトサポート係へメールをお送りください
  • トータル・ディスクロージャ・サイトに投稿された文章と画像は、すべてその著作権がHPCシステムズ株式会社に帰属し、HPCシステムズ株式会社が著作権を所有することに同意してください。
  • あなたの文章が他人によって自由に編集、配布されることを望まない場合は、投稿を控えてください。
  • コメントを書き込む場合は名前にひらがなを織り交ぜてください。
  • あなたの投稿する文章と画像はあなた自身によって書かれたものであるか、パブリック・ドメインかそれに類する自由なリソースからの複製であることを約束してください。あなたが著作権を保持していない作品を許諾なしに投稿してはいけません!

<comments hideform="false" />


Comments

ノート:メニーコアと格闘ブログ:デバッグ版 実行結果修正と、最適化オプション

個人用ツール