アプリケーションの最適化について

本書では、インテル(R) C++ コンパイラーを使用して、アプリケーションのパフォーマンスを向上させる方法について説明します。目的に合ったトピックを参照してください。

本書は、IA-32、Itanium(R)、およびインテル(R) エクステンデッド・メモリー 64 テクノロジー (インテル(R) EM64T) ベースの Linux*、Windows*、および Mac OS* システムに使用できるコンパイラー・オプションと最適化を適用する方法について説明します。一般に、IA-32 Linux システムでサポートされているコンパイラー機能とオプションは、Mac OS を実行しているインテル(R) プロセッサー・ベースのシステムでもサポートされています。特定のオペレーティング・システムにおけるコンパイラーのサポートに関する詳細は、「インテル(R) コンパイラーのリリースノート」を参照してください。

アプリケーションのパフォーマンスに影響するコンパイラー・オプションに加えて、コンパイラーには、宣言子、組み込み関数、ランタイム・ライブラリー・ルーチンおよびさまざまなユーティリティーなど、アプリケーションのパフォーマンスを向上させる機能が含まれています。

次の表は、最適化の目的と参照すべきトピックを示したものです。

目的

トピック

特定の種類のアプリケーションでパフォーマンスを向上させる

パフォーマンス拡張手法の適用

パフォーマンス拡張手法の使用

インテルが提供するパフォーマンス解析ツールの使用

速度を優先するか、または特定のアーキテクチャー用にアプリケーションを最適化する

コンパイラーの最適化の概要

最適化オプションのまとめ

特定のプロセッサーの最適化の概要

最適化を支援するアプリケーション・プロファイルを作成する

プロファイルに基づく最適化 (PGO)

PGO ツールの概要

呼び出しとジャンプの最適化を有効にする

プロシージャー間の最適化 (IPO)

IPO コンパイルモード

ループ、配列、およびデータレイアウトを最適化する

高レベルな最適化 (HLO)

ループのアンロール

ループの独立性

コンパイラーの最適化に関するレポートを生成する

コンパイラー・レポートの概要

アプリケーションのパフォーマンスを向上させる言語組み込み関数、プラグマと宣言子、ランタイム・ライブラリーを使用する

最適化サポート機能

コンパイラー宣言子の概要

並列プログラムを作成する、または既存のプログラムを並列化する

並列処理

ベクトル化 (IA-32 のみ)

自動並列化

OpenMP* による並列化