04.04.2013 Views

Meet the HP Superdome servers - 日本HP (ヒューレット・パッカード) - HP

Meet the HP Superdome servers - 日本HP (ヒューレット・パッカード) - HP

Meet the HP Superdome servers - 日本HP (ヒューレット・パッカード) - HP

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

はじめに<br />

<strong>HP</strong> Itanium ベースのオプティマイザは、コードを変換し、Itanium TM ベースの <strong>HP</strong>-UX システム上でのコードの実行効率を<br />

高めます。オプティマイザは、アプリケーションのパフォーマンスを大幅に改善します。最適化のレベルが上がるほど実<br />

行される解析の複雑さが増すため、コンパイル時間とメモリ消費量は増大します。<br />

このドキュメントで取り扱う内容は、次のとおりです。<br />

• 最適化の 6 つのレベル<br />

• プロシージャ間の最適化<br />

• 高度な最適化オプションとプラグマ<br />

• プロファイル ベースの最適化<br />

最適化の 6 つのレベル<br />

最適化には、6 つのレベルがあります。各レベルは、下位レベルの上位集合となっています。追加のパラメータを使用し<br />

て、最適化の程度、コンパイル時間、生成される実行可能プログラムのサイズを制御できます。<br />

レベル ゼロ<br />

+O0<br />

説明:<br />

• 単純なレジスタ割り当て<br />

• 単純なスケジューリング(1 命令/サイクル、1 バンドル/サイクル)<br />

• ほとんどの場合、使用しないこと<br />

利点:<br />

コンパイル時間は最速。ただし、生成コードの質の点から、この最適化レベルを使用しないことを強く推奨します。<br />

レベル1<br />

+O1(デフォルト)<br />

説明:<br />

• 共通の部分式の削除、定数の畳み込み、ロード/ストアの削除など、単一基本ブロックを対象とするローカルな最適<br />

化<br />

• レベル ゼロより高度な命令スケジューリング<br />

• ローカル スカラー、C/C++ のフォーマル スカラーに対するレジスタ プロモーション<br />

• C++で、変換ユニット内の逆方向(backward) 呼び出しのインライン化<br />

利点:<br />

• +O0 より格段に高速なコードを生成、かつ、+O2 よりコンパイル時間が高速<br />

• コードのデバッグ性を維持<br />

レベル2<br />

+O2 または–O<br />

説明:<br />

• レベル 1 の最適化に加えて、関数全体を対象とする最適化を実行<br />

• 高速なコンパイル時間とパフォーマンス向上を保証するため、調整した経験則に基づいて、モジュール内インライン化<br />

を実行<br />

• グルーバル最適化、コード モーション(移動)、レジスタ プロモーションを実行<br />

• データ プリフェッチ、合計の削減(sum reduction)、スカラー置換、強度の低減(strength reduction)、アンローリング、イ<br />

ンクリメント後統合(post-increment syn<strong>the</strong>sis)など、ループ最適化を実行<br />

2

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!