Linux 版インテル® C++ コンパイラ 8.0
リリースノート

目次

概要
新機能
動作環境
インストール
既知の制限事項
テクニカル・サポート
ドキュメント
追加情報
著作権と商標について

概要

インテル® コンパイラは、すべてのインテル 32 ビット (IA-32) プロセッサおよびインテル® Itanium® プロセッサに対応し、これらのプロセッサ上できわめて高速に動作するソフトウェアを生成します。インテル® Pentium® 4 プロセッサと Pentium M プロセッサのストリーミング SIMD 拡張命令 2 (SSE2)、HT テクノロジ インテル Pentium 4 プロセッサのストリーミング SIMD 拡張命令 3 (SSE3)、インテル Itanium 2 プロセッサのソフトウェアのパイプライン化など数々の最適化機能に対応しているほか、プロシージャ間の最適化 (IPO) やプロファイルに基づく最適化 (PGO) によってアプリケーションのパフォーマンスを大きく向上させます。また、OpenMP* に対応し、自動並列化機能も備えるなど、マルチスレッド・コードの開発もサポートしています。

インストール・パッケージには以下のコンポーネントが含まれています:

インテル・コンパイラを使用して、Pentium 4 プロセッサおよび Itanium プロセッサ用にアプリケーションを最適化する方法については、『Optimizing Applications with the Intel C++ and Fortran Compilers for Windows* and Linux*』(英語) を参照してください。インテルのソフトウェア開発製品の詳しい情報については、http://www.intel.com/jp/developer/software/products/ を参照してください。

製品の内容

IA-32 ベース・アプリケーション開発用インテル C++ コンパイラ
IA-32 ベース・アプリケーション開発用インテル C++ コンパイラは以下の内容で構成されています:

Itanium ベース・アプリケーション開発用インテル C++ コンパイラ
Itanium ベース・アプリケーション開発用インテル C++ コンパイラは、以下の内容で構成されています:

コンパイラ・ドライバ
C コンパイラ・ドライバ (icc) は、ファイル名の拡張子に基づいて使用する言語を判断します。ただし、事前処理されたファイル (*.i) をコンパイルする場合、icc ドライバは C 言語を想定し、C++ ドライバの icpc は C++ 言語を想定します。C++ アプリケーションには、C++ コンパイラ・ドライバを使用することを推奨します。C (icc) コンパイラと C++ (icpc) コンパイラは、以前のリリースと同様、C/C++ の両アプリケーションに対して、C ライブラリではなく C++ ライブラリを常にリンクします。

新機能

インテル C++ コンパイラ 8.0 では、HT テクノロジ インテル Pentium 4 プロセッサ (SSE3 対応) 向けの最適化がサポートされています。また、C/C++ プログラムと gcc のソース/バイナリ互換が向上し、デバッグのサポートが強化されています。さらに、コード・カバレッジ・ツールおよびテスト・プライオリタイゼーション・ツールが新しく追加されるなど、ユーザからの要望に応えて開発されたさまざまな機能が含まれています。

コンパイラ・ドライバ名の変更

Itanium ベース・システムでインテル C++ コンパイラを使用する場合、IA-32 のコンパイラ・ドライバ名との整合性に配慮し、Itanium ベース・システムのコンパイラ・ドライバ名が ecc から iccecpc から icpc に変更されたことに注意してください。現在、以前のドライバ名はサポートされていますが、今後、廃止される可能性がありますのでご注意ください。

新しいパッケージのディレクトリ構造

パッケージのディレクトリ構造は、「Linux Standard Base」の一部の FHS (Filesystem Hierarchy Standard) に対応するように変更されています。FHS の詳細は http://www.pathname.com/fhs/2.2/fhs-3.12.html (英語) を参照してください。

デフォルトのリンク動作の変更

コンパイラの設定ファイル <インストール先ディレクトリ>/bin/icc.cfg と <インストール先ディレクトリ>/bin/icpc.cfg が変更され、リンカへの RPATH コマンドが削除されました。このコマンドは、以前のバージョンで、実行ファイル形式のインテル共用ライブラリの場所を設定していたものです。この RPATH ディレクティブを設定ファイルに置く短所として、"icc" (コンパイラ) と入力するだけで、次のようなエラーを誘引していたという点があります:
/usr/lib/crt1.o: In function `_start':
/usr/lib/crt1.o(.text+0x18): undefined reference to `main'
このエラーの原因は、使用しているコンパイラやインストールに問題があるのではないかという混乱を招いたため、このバージョンでは RPATH ディレクティブが削除され、"icc" と入力すると次のように詳細なエラー・メッセージが表示されるようになりました:

icc: Command line error: no files specified; for help type "icc -help"

ただし、実行ファイルにはインテル共用ライブラリの場所が含まれていないため、その場所を指定する必要があります。次のいずれかの方法で指定できます。
  1. LD_LIBRARY_PATH 環境変数にインテル共用ライブラリの場所を含める。sh 型のシェルの場合は、" export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:<インストール先ディレクトリ>/lib" と入力する。
  2. ldconfig システム・ユーティリティを使用する。(注: ユーティリティの実行には、root ユーザ権限が必要です。)
  3. コンパイラの設定ファイル <インストール先ディレクトリ>/bin/icc.cfg を変更する。
次のようなエラー・メッセージが表示された場合は、上記の 3 つのいずれかの方法を使用してインテル共用ライブラリの場所を設定する必要があります:

error while loading shared libraries: libcprts.so.5: cannot open shared object file: No such file or directory

HT テクノロジ インテル Pentium 4 プロセッサ (SSE3 対応) 向けの最適化のサポート

HT テクノロジ インテル Pentium 4 プロセッサ (SSE3 対応) は新世代の IA-32 プロセッサです。このプロセッサは、複素数データ型、浮動小数点から整数への変換、および水平加算を含むベクトル化ループのパフォーマンスを向上させる新しい "SSE3" 命令セットをサポートします。

Linux 版インテル C++ コンパイラ 8.0 には、この新しいプロセッサ向けに最適化する機能が追加されています。この機能には、プロセッサ用に命令や組込み関数を生成する -xP オプションや -axP オプション、インライン・アセンブリ、"future_cpu_10" による手動 CPU ディスパッチのサポートなどが含まれます。

詳細は、『インテル® C++ コンパイラ・ユーザーズ・ガイド』の「最適化」のセクションを参照してください。

IA-32 プロセッサの新しい最適化オプション

すべてのインテル Pentium 4 プロセッサおよびインテル Pentium M プロセッサで最高のパフォーマンスを引き出すため、新しい -axN オプションを使用することを推奨します。また、Pentium M プロセッサでは新しい –axB オプションをお試しください。詳細は、『インテル® C++ コンパイラ・ユーザーズ・ガイド』の「最適化」のセクションを参照してください。

gcc 3.2 とのバイナリ互換

Linux 版インテル C++ コンパイラ 8.0 は、gcc 3.2 との高レベルのバイナリ互換を提供しています。

新規の -cxxlib-gcc オプションを使用すると、gcc が提供する C++ ランタイム・コンポーネントを使用してアプリケーションをビルドできます。gcc の C++ ランタイムには、libstdc++ 標準 C++ ヘッダファイル、ライブラリ、および言語サポートが含まれています。このオプションが指定された場合は、libcprts 標準 C++ ヘッダ、ライブラリ、およびインテル・コンパイラが提供する libcxa と libunwind の C++ 言語サポートの代わりに上記のコンポーネントが使用されます。

-cxxlib-gcc オプションでアプリケーションのコンパイルとリンクを行って生成された C++ オブジェクト・ファイル、ライブラリ、実行ファイルは、gcc 3.2 で生成された C++ オブジェクト・ファイル、ライブラリ、実行ファイルと相互運用が可能です。これは、インテル・コンパイラ 8.0 で生成された C++ コードが gcc 3.2 でビルドされたサードパーティの C++ ライブラリとともに使用できることを意味します。

gcc 3.2 とのソース互換

gcc で有効な事前定義済みマクロがインテル・コンパイラでも有効になりました。例えば、インテル・コンパイラでは現在、__GNUC__、__GNUC_MINOR__、および GNUC_PATCHLEVEL__ の各マクロが定義されています。これらのマクロを定義しない場合は、-no-gcc オプションを指定してください。

さらに、Linux 版インテル C++ コンパイラのこのバージョンでは、ご使用の Linux に付属の C ヘッダが使用されます (Itanium アプリケーション用の Itanium コンパイラでのみ使用される 2 つの小さな代用ヘッダを除く)。また、-ansi 言語モードを使用する場合は、-cxxlib-gcc スイッチにより、Gnu C++ ライブラリ・ヘッダがコンパイルされるようになりました。

デフォルトでは、インテル・ コンパイラ 8.0 の事前定義マクロの -D__NO_INLINE__-D__NO_STRING_INLINES を除き、gcc 3.2 で使用されているパスと同じヘッダのパス (条件付きコード) が使用されます。これらの事前定義マクロは、gcc 3.2 との相互運用性には影響がありません。

GNU C++ min/max 演算子が実装されました。詳細は、 http://gcc.gnu.org/onlinedocs/gcc/Min-and-Max.html (英語) を参照してください。

新規に実装された gcc 属性は次のとおりです:

詳細は、 http://gcc.gnu.org/onlinedocs/gcc-3.2/gcc/Attribute-Syntax.html (英語) を参照してください。

インテル C++ コンパイラ 8.0 には多くの gcc 組込み関数が実装されています。gcc 組込み関数に関しては、http://gcc.gnu.org/onlinedocs/gcc/Other-Builtins.html (英語) を参照してください。サポートされている gcc 組込み関数のリストは、「インテル® C++ コンパイラ・ユーザーズ・ガイド」にあります。

-ansi スイッチの更新

-ansi スイッチが更新され、同じ名前の gcc コマンドライン・オプションと互換性が保たれるようになりました。インテル・コンパイラは、-strict_ansi コマンドライン・オプションで、より厳しい ISO C および C++ へのセマンティクスの適合性をサポートします。

GNU 環境変数

プリプロセッサに影響を与える次の GNU 環境変数がサポートされます。詳細は、http://gcc.gnu.org/onlinedocs/gcc/Environment-Variables.html (英語) を参照してください。

プリコンパイル済みヘッダ

Linux 版インテル C++ コンパイラでは、プリコンパイル済みヘッダの手動処理と自動処理がともにサポートされるようになりました。適切な状況下でこの機能を使用することにより、コンパイル時間を大幅に短縮できます。詳細は、ユーザーズ・ガイドを参照してください。

プリコンパイル済みヘッダの自動処理を行うには、コンパイル・オプションに -pch を追加します。1 回目のコンパイルでは .pchi ファイルの作成に多少時間がかかりますが、2 回目以降のコンパイルでは、作成された .pchi ファイルを利用できるため、処理速度が向上します。

> icc -c -pch file1.cpp
"file1.cpp": creating precompiled header file "file1.pchi"

> icc -c -pch file1.cpp
"file1.cpp": using precompiled header file "file1.pchi"
ディスク容量に制限がある場合、プリコンパイル済みヘッダの数を 1 つにすることができます。これを行うには、新しいヘッダファイル common.h を作成して、次の例のように重要なヘッダを含めます。

common.h:

#include "myheader1.h"
#include "myheader2.h"
#include <iostream>
各ソースファイルに common.h を含めて、その直後に #pragma hdrstopIn を含めます。

file1.cpp:

#include "common.h"
#pragma hdrstop
#include "otherheader1.h"

file2.cpp:

#include "common.h"
#pragma hdrstop
#include "otherheader2.h"
コンパイル:
> icc -c -pch file1.cpp
"file1.cpp": creating precompiled header file "file1.pchi"

> icc -c -pch file2.cpp
"file2.cpp": using precompiled header file "file1.pchi"

プリコンパイル済みヘッダは 1 つしか作成されないため、使用するディスク容量が減少し、コンパイル時間を短縮できます。

-ip オプションおよび -ipo オプションのデバッグサポートの向上

-ip オプションおよび -ipo オプションのデバッグサポートが向上しました。一部の変数の情報が利用できます (ただし、最適化の影響により、値が必ずしも正確であるとは限りません)。

新規の診断スイッチ

次の新規の診断スイッチを使用することができます。

IA-32 浮動小数点スタック・チェッカー・オプション -fpstkchk

このオプションは、FP スタックが確実に予測された状態にするためにすべての関数/ルーチンの呼び出し後に補足コードを生成します。関数呼び出しが FP 値を返す場合、戻り値は FP スタックの最上位に配置されます。戻り値が未使用の場合、コンパイラは正しい状態で FP スタックを維持するために FP スタックから値をポップします。しかし、アプリケーションがこのような関数を呼び出して、関数のプロトタイプを省略するか、関数のプロトタイプを正しく行わない場合、その関数が FP 値を返す必要があるかどうかをコンパイラが判断できず、必要な場合でも FP スタックからその値がポップされません。この結果、FP スタックが最終的にオーバーフローすることがあります。一般に、FP スタックがオーバーフローすると、NaN 値が FP 計算で用いられるため、プログラムの結果が異なるか、または他のエラーが生じることがあります。その際、エラーが生じた場所が、実際の問題の箇所とは異なっていることもあります。このオプションは、不正な呼び出しが発生した直後にアクセス違反例外を知らせるので、これらの問題をより簡単に見つけることができます。

動的にリンクされる libguide

静的にリンクされる libguide ライブラリは、デバッグすることが難しいパフォーマンス問題を引き起こす可能性があります。コンパイラ 8.0 では、コマンドライン・オプションに関わらず、libguide を動的にリンクします。

レジスタの関数のデバッグ・サポート

位置リストにより、より信頼性のあるオブジェクト位置のデバッグ情報が提供されます。これにより、レジスタ内の変数におけるデバッグのサポートが強化されます。

インテル・コンパイラのコード・カバレッジ・ツール

インテル・コンパイラのコード・カバレッジ・ツールは、インテル・コンパイラのプロファイルに基づく最適化テクノロジを利用して、開発者に特定のワークロードにおけるアプリケーション・コードのカバレッジの全体像を呈示します。ツールはアプリケーションのコード・カバレッジを把握するために、コンパイラにより生成された静的プロファイル情報と、ユーザのインストルメント済みバイナリをワークロードで実行した結果、生成される動的プロファイル情報を組み合わせます。カバレッジ・ツールは、この情報とアプリケーションのソースを併用して、コード・カバレッジが色付きの注釈で強調表示された HTML ページを作成します。また、アプリケーションのファイルと関数を並べ替えて、カバレッジの低いモジュールと関数を簡単に識別できるフレームを作成します。コード・カバレッジを表示するには、任意のブラウザを使用できます。

インテル・コンパイラのコード・カバレッジ・ツールをさまざまな方法で活用して、開発効率を改善し、問題を減少し、アプリケーションのパフォーマンスを向上させることができます。ツールをテストスペースのアプリケーション・プロファイルに適用すると、カバレッジ情報に基づいてテストの全体の質を測定することができます。同様に、パフォーマンス・ワークロードのプロファイルに適用すると、コード・カバレッジ情報により実行されたワークロードが、アプリケーションの重要なコードをどの程度カバーするかを把握できます。インテル・コンパイラが提供するプロファイルに基づく最適化の利点を享受するには、パフォーマンス・クリティカルなモジュールの高いカバレッジが必要です。また、このツールは、アプリケーションの各基本ブロックの動的実行カウントを表示して、カバレッジとパフォーマンス・チューニングの両方に有用な情報を示すオプションを提供します。カバレッジ・ツールは、アプリケーションの 2 つの異なる実行におけるプロファイルを比較できます。この機能は、アプリケーションがカスタマなどによってテストスペース外で実行される場合、アプリケーションのテストでカバーされないアプリケーションのコードの部分を検索するのに使用することができます。

インテル・コンパイラのコード・カバレッジ・ツールは、Windows/Linux 上のインテル® アーキテクチャ 32 ビット・プロセッサ・ファミリおよび Itanium プロセッサ・ファミリでサポートされます。また、C、C++、および Fortran をシームレスにサポートします。

インテル・コンパイラのテスト・プライオリタイゼーション・ツール

テスト・プライオリタイゼーション・ツールは、インテル・コンパイラのプロファイルに基づく最適化テクノロジを利用して、以前のアプリケーションの実行プロファイルを基に、アプリケーションのテストの選択と重要度付けを行います。ユーザは、このツールを使用して、アプリケーションのコードのサブセットに対してより適切なテストを選択し、重要度付けを行うことができます。アプリケーションの特定のモジュールが変更されると、テスト・プライオリタイゼーション・ツールはそのセットの変更によって最も影響を受けるテストを示唆します。また、以前に実行されたアプリケーションのプロファイル・データを分析して、アプリケーションのコンポーネントとテストの依存性を確認し、この情報を基にテストのプロセスをガイドします。このツールは、アプリケーションのコード・カバレッジを基に、効率的なテスト階層を作成するのに使用できます。例えば、テストの全体をカバーするアプリケーション・テストの最小サブセットを定義します。また、テストのターンアラウンド時間を大幅に短縮します。長い時間を費やして多くの失敗を見つける代わりに、ユーザは、セットの変更によって問題が発生する少数のテストをすばやく見つけられます。このツールはまた、テストがボトルネックとなる大規模なアプリケーションのテストと開発に要する時間を大幅に短縮するのに役立ちます。アプリケーションの任意のサブセットで全体をカバーするために必要なテストの数を最小限にし、さらに、テストの実行時間が決まっている場合は、特定のレベルのコード・カバレッジを最小限の時間で達成するテストを選択して重要度付けを行うことができます。

インテル・コンパイラのコード・カバレッジ・ツールは、32 ビット・インテル・アーキテクチャおよび Windows と Linux での Itanium プロセッサ・ファミリでサポートされます。また、C、C++、および Fortran をシームレスにサポートします。

詳細に関しては、次のリンクを参照してください: http://www.intel.com/software/products/compilers/techtopics/pgt.htm (英語)

プロシージャ間の最適化 (IPO) におけるバージョン番号付きの中間ファイル (.il)

IPO で生成された各 .il ファイルには、バージョン番号が割り当てられます。コンパイラは、同じバージョンの .il ファイルのみを処理します。バージョン番号はビルド処理の一部として、自動的に生成され、更新されます。

高速メモリ Copy ルーチン

コマンドラインで -nostdlib を指定した場合やインテル C++ コンパイラのドライバからではなく、直接リンカを呼び出したことにより、標準のインテル・ライブラリに対してリンクが行われない場合の問題について次に説明します。

インテル C++ コンパイラは、_intel_fast_memcpy_intel_fast_memset の 2 つのルーチンを使用して、ソースコードでは __builtin_memcpy__builtin_memset にマクロ展開されていない memcpy 演算と memset 演算を行います。これらは、libirc にあります。gcc コンパイラを使用してアプリケーションをリンクしたり、リンカ ld を直接呼び出すと、これらの 2 つのルーチンが未解決のシンボルになります。このため、コンパイル・フェーズで使用したコンパイラ・オプションと同じものを使用して、インテル C++ コンパイラでリンクすることを推奨します。ただし、これらのルーチンを未定義の外部参照とみなす場合は、-lirc をリンク行に追加するか、または memcpy および memset が組込み形式にマクロ展開されるようにインクルードを変更して、再コンパイルします。IA-32 ベース・アプリケーション用インテル C++ コンパイラは、任意のプログラムのメインルーチンから intel_proc_init ルーチンを呼び出し、プロセッサが正しく設定されるようにします。また、このルーチンは libirc にも含まれています。これらのルーチンは glibc からのエントリポイントを使用するので、コマンドラインでは -lirc-lc の前に配置する必要があります。

読み取り専用データの動作変更

IA-32 コンパイラの 7.1 のリリースでは、すべての定数と文字列リテラルを書き込み可能なデータ・セクションに配置しています。この 8.0 のリリースでは、デフォルト動作は gcc の動作と一致するように変更されています。const データは読み込み専用データ・セクションに配置され、文字列リテラルも同様に読み込み専用セクションに配置されます。以前の動作に依存するアプリケーションには、8.0 のバージョンで追加された -fwritable-strings コンパイラ・オプションを使用する必要があります。

Itanium コンパイラの 7.1 バージョンでは、書き込み可能なデータ・セクションに、すべての次元定数と文字列リテラルが配置されています。8.0 のリリースでは、デフォルト動作は gcc の動作に一致するように変更されています。次元 const データは読み取り専用データ・セクションに配置され、文字列リテラルも読み込み専用セクションにデフォルトで配置されます。以前の動作に依存するアプリケーションには、このバージョンで追加された -fwritable-strings コンパイラ・オプションを使用する必要があります。

-fwritable-strings オプションは、文字列リテラルを書き込み可能なデータ・セクションに配置する gcc と互換性があるオプションです。これは、文字列への書き込みを前提とするアプリケーションの下位互換のために提供されています。

動作環境

IA-32 プロセッサの動作環境

Itanium プロセッサの動作環境

インストールに関する注意事項

以前のバージョンのコンパイラを使用している場合は、インテル C++ コンパイラ 8.0 をインストールする前に、以前のコンパイラをアンインストールすることを推奨します。アンインストールに関しては、「コンパイラとデバッガのアンインストール」 を参照してください。

インテル C++ コンパイラのインストール・スクリプトは、システム・ユーティリティ RPM を使用してファイルをインストールします。RPM 4.0.2 および RPM 4.1 の両方に制限があるので注意してください。詳細は「既知の制限事項」を参照してください。

ライセンスのインストール

インテル C++ コンパイラは、Macrovision 社の FLEXlm* 電子ライセンス・テクノロジを使用しています。ライセンスの管理は透過的に行われます。インテル C++ コンパイラ 8.0 のインストール・プログラムは、製品コンポーネントをインストールする前に有効なライセンスをチェックします。また、プログラムのコンパイル時とビルド時にもライセンス・ファイルのチェックを行います。

注: サポート・サービスの有効期間内であれば、Linux 版インテル C++ コンパイラのバージョン 6.0.1 または 7.1 のライセンスを 8.0 でもそのまま使用できます。

インストール前に、以下の手順に従ってライセンス・ファイルをセットアップしてください。

サポート・サービス・ライセンスの詳細は、http://www.intel.com/software/products/compilers/clin/pricelist.htm (英語) を参照してください。

インテル C++ コンパイラのインストール

次の手順で IA-32 コンパイラをインストールします。
  1. コンパイラ・パッケージをダウンロードします。
  2. 書き込み権限があるディレクトリでパッケージを解凍 (untar) します。
    > untar -xvf l_cc_p[c]_8.0.xxx.tar
    または
    > untar -zxvf l_cc_p[c]_8.0.xxx.tar.gz
  3. インストール・スクリプトを実行します。
    rpm コマンドを実行するために、root ユーザ でログインします。そして、解凍されたファイルが抽出されたディレクトリでインストール・スクリプトを実行します。
    > source ./install.sh
    root アカウントでログインできない場合は、rpm2cpio を使用して RPM ファイルを手動で解凍し、iccvars.sh (.csh) ファイルを編集してコンパイラのインストール先ディレクトリを含めると、root 権限なしでもコンパイラをインストールできます。インストール・スクリプトでは、この手順を自動的に行います。
  4. ライセンス・ファイルのディレクトリを入力します。
    これは上記でライセンス・ファイル (*.lic) を保存したディレクトリです。インストール・プログラムは、Linux コンポーネントのインテル C++ コンパイラをインストールする前に、有効なライセンスをチェックします。
  5. ライセンスのチェック終了後、インストール・プログラムは既にインストールされているインテルのソフトウェア製品と次のインストール・メニュー項目を表示します。
  6. インストールするパッケージを選択します。すべての製品を使用するために必要なパッケージがインストールされます。RPM パッケージが既にインストールされている場合は、インストール・スクリプトはこれを報告し、インストールが完了しなかったことを示します。その後、次の RPM パッケージのインストールを続行します。既存のファイルを更新するには、デフォルトの RPM オプション -U --replacefiles を使用することを推奨します。デフォルトのインストール・ディレクトリは、インテル C++ コンパイラでは /opt/intel_cc_80/、インテル・デバッガでは /opt/intel_idb_xx/ です (xx: は "idb -V" を実行すると表示される、idb のバージョン番号です)。
  7. インストールが完了すると、インストールされたインテル・パッケージ、それからインストール・メニューが再度表示されます。'x' を入力してインストール・スクリプトを終了します。

コンパイラ環境の設定

Linux 版インテル C++ コンパイラ製品のプログラムは、PATH および LD_LIBRARY_PATH 環境変数に依存します。インストール・スクリプト (install.sh) は、これらの変数を設定するコンパイラ環境スクリプト・ファイル (iccvars.sh/ idbvars.sh) を作成します。これらのスクリプト・ファイルをログイン・スクリプト (.login ファイル) に追加することを強く推奨します。".login" ファイルで一旦、変数が設定されれば、セッションごとにスクリプト・ファイルを実行する必要がなくなります。

コンパイラ環境を設定するスクリプトの実行

また、インストール・プログラムにより、すべてのコンパイル処理に共通の設定を含むコンパイラ設定ファイル (<インストール先ディレクトリ>/bin/icc.cfg) が IA32 システムまたは Itanium ベース・システム上に作成されます。これらのファイルを編集して、デフォルトのオプションを追加することができます。
注: コンパイラのアップデート・パッケージをインストールする場合は、変更した設定ファイルを別のファイル名で保存し、ファイルが上書きされないようにする必要があります。

製品のインストールが完了したら、サポートへ登録してください。登録方法については、「テクニカル・サポート」を参照してください。

コンパイラとデバッガのアンインストール

下記の手順に従ってインテル・コンパイラとインテル・デバッガをアンインストールします。
  1. root ユーザ権限でログインします。
  2. コンパイラをアンインストールするには次のファイルを使用します:
    <compiler-install-dir>/bin/uninstall.sh
    デフォルト・ディレクトリにコンパイラをインストールした場合:
    /opt/intel_cc_80/bin/uninstall.sh
  3. デバッガをアンインストールするには次のファイルを使用します:
    <debugger-install-dir>/bin/uninstall.sh
    デフォルト・ディレクトリにコンパイラをインストールした場合:
    /opt/intel_idb_73/bin/uninstall.sh

既知の制限事項

RPM 4.0.2 および RPM 4.1 インストール時のエラーについて
RPM 4.0.2 はデフォルト以外のディレクトリにはインストールできません。この問題は RPM 4.0.3 で修正されています。また、RPM 4.1 もデフォルト以外のディレクトリにはインストールできません。この問題は RPM 4.11 から 4.2 で修正されています。

インテル・デバッガのバージョン 7.3 のインストールについて
インテル C++ コンパイラ 8.0 パッケージから IA-32 または Itanium ベース・アプリケーション用インテル・デバッガのバージョン 7.3 をインストールする場合、既にインストールされているインテル・デバッガのバージョン 7.1 または 7.2 は、7.3 にアップグレードされます。

Red Hat* Linux 9 の NPTL ベース pthreads ライブラリ
一部のスレッド化 (OpenMP を含む) アプリケーションでは、Red Hat Linux 9 で導入された新しい NPTL ベース pthreads ライブラリにリンクすると、問題が生じる場合があります。これは、環境変数 LD_ASSUME_KERNEL=2.4.19 を設定することにより、解決できることがあります。この設定は、NPTL を実装していない以前の pthreads ライブラリ・バージョンを使用します。

FLEXlm ライセンス・デーモン
FLEXlm ライセンス・デーモンは、Red Hat Linux 9 または Red Hat Enterprise Linux* 3.0 が動作しているシステムでは現在サポートされていません。このデーモンはフローティング・ライセンスを使用している場合のみ必要で、この場合は、サポートされる他のオペレーティング・システムで動作するシステムにライセンス・サーバをインストールしなければなりません。サーバを必要としないシングル・ユーザ・ライセンスを使用している場合は、影響ありません。

OpenMP の制限事項
大きなサイズのスタックを必要とする POSIX スレッドのプログラムの場合、一部の Linux のバージョンでは正常に動作しないことがあります。これは、Linux の POSIX スレッド・ライブラリのバージョンによっては、ハードコード化されたスタックサイズに制限があるためです。インテル・コンパイラでは POSIX スレッド・ライブラリを使用して OpenMP ベースおよび自動生成による並列化を実装しているため、上記の制約は OpenMP プログラム (-openmp)、およびインテル・コンパイラで自動生成された並列プログラム (-parallel) にも適用されます。通常、スタックの容量制限を超過したスレッド・プログラムを実行すると、セグメンテーション違反またはアドレシング・エラーが発生します。

この制約を回避するには、FLOATING_STACKS パラメータを定義した glibc、通常はバージョン 2.2.4 以降 (IA-32、Itanium プロセッサ・ファミリとも) を使用するようにしてください。そして、ulimit -s .... コマンドを実行して最大シェル・スタック・サイズを十分な大きさの値 (単位:KB) に設定し、さらに環境変数 KMP_STACKSIZE を必要なスレッド・スタック・サイズ (単位:バイト) に設定してください。なお、シェル・スタック・サイズの最大値を unlimited と指定すると固定値に設定されてしまうため、問題を回避することができません。bash シェルでは、ulimit -s コマンドを使用して最大スタックサイズを設定できるのは 1 回のみであることに注意してください。C シェル (csh) では、ulimit -stacksize を使用することで、最大スタックサイズを何回でもリセットできます。KMP_STACKSIZE のデフォルト値は IA-32 の場合は 2 MB、Itanium ベース・システムの場合は 4 MB にまで引き上げられています。

上記の回避方法は RedHat 7.2 Linux ディストリビューションの glibc バージョン 2.2.4-13 (IA-32 用) および glibc 2.2.4-19 (Itanium プロセッサ・ファミリ版) で検証済みです。IA-32 版の glibc 2.2.4-13 に関しては、POSIX スレッド・ライブラリの共用バージョンを必ず使用してください (コンパイラの .cfg ファイル、またはコマンド・ラインで -static フラグを使用しないでください)。

OpenMP とプロファイルに基づく最適化をともに行うと、プロファイル (.dyn ファイル) の生成のために、実行時間が長くなることがあります。これは既知の問題です。このバージョンのインテル C++ コンパイラでは、OpenMP と組み合わせてプロファイルに基づく最適化を行うことは推奨しません。

-g とインライン化を組み合わせた場合のコンパイル時間の増加
-g をインライン化と組み合わせて使用すると、コンパイル時間が長くなります。-ipo、-ip を指定した場合や -O1 以上のオプション・レベルで C++/C99 プロブラムをコンパイルする場合、インライン化が発生します。これはデバッグ情報が生成されるためです。多くのアプリケーションでは、このコンパイラ・オプションの組み合わせは、コンパイル時間またはコンパイル時のメモリ容量を増加させません。最新バージョンのインテル C++ コンパイラに関する既知の制限事項および注意事項については、以下のリンク先を参照してください。

テクニカル・サポート

インテルでは、お客様のフィードバックを非常に重視しています。本製品で提供されるツールについてのテクニカル・サポートおよび FAQ や製品のアップデート情報を含むテクニカル情報を受けるには、https://premier.intel.com (英語) でインテル® プレミア・サポート・アカウントに登録してください。http://support.intel.com/support/performancetools/support.htm (英語) で [Registration Center] をクリックして登録します。

インテル C++ コンパイラのユーザ・フォーラム、FAQ、ヒント、およびその他のサポート情報は、http://support.intel.com/support/performancetools/c/linux/ (英語) を参照してください。サポート情報全般については、http://www.intel.com/software/products/support/ を参照してください。

問題の送信方法

問題を送信する手順:

  1. https://premier.intel.com/ (英語) にアクセスします。
  2. ログイン名とパスワードを入力します。どちらも大文字と小文字が区別されます。
  3. [Submit] ボタンをクリックします。
  4. 「Confidentiality Statement (機密保護について)」を読み、[I Accept] ボタンを押します。
  5. [Product] ドロップダウン・リストの隣の [Go] ボタンをクリックします。
  6. 左側のナビゲーション・バーの [Submit Issue] リンクをクリックします。
  7. [Product Type] ドロップダウン・リストから [Development Environment (tools,SDV,EAP)] を選択します。
  8. ソフトウェアまたはライセンスに関する問題の場合は、[Product Name] ドロップダウン・リストから [Intel C++ Compiler, Linux*] を選択します。
  9. 質問を入力します。ウィンドウの残りのフィールドも記入して、問題箇所の送信を完了します。

問題の報告および製品に関するご意見を送信される際のガイドライン

  1. 問題、その他ご意見を入力してください。
    問題の報告の場合は、その問題を再現できるように、できるだけ具体的に説明してください。コンパイラの問題報告の場合は、できるだけコンパイラ・オプションと簡単なテストコードを追加してください。
  2. システム構成情報を入力します。
    次のコマンドを使用して glibc とカーネルのバージョンを調べます:
    > uname -a
    > rpm -qa | grep glibc
    rpm をインストールしている場合は、下記のコマンドを実行します:
    > ls /lib/libc*
    プレミア・サポートの適切なフィールドに、表示された情報をコピーします。

    下記のコマンドで、インテル C++ コンパイラのパッケージ ID を取得します:
    > icc -V -c
    出力された [Package ID] (例:.l_cc_p[c]_8.0.xxx) をプレミア・サポートの適切なフィールドにコピーします。また、問題の解決に役立つと思われる事項はすべてお伝えください。

  3. コンパイラをインストールできない場合、またはパッケージ ID を取得できない場合は、ダウンロードしたファイル名をパッケージ ID として入力してください。

解決済みの問題

コンパイラの最新バージョンで修正された問題点については、インテル・プレミア・サポート (https://premier.intel.com)(英語) からダウンロードできる <package ID>_README (例: l_cc_p[c]_8.0.xxx_README) を参照してください。

ドキュメント

インテル・コンパイラのドキュメントおよび HTML ベースの関連ドキュメントは、ナビゲーション、インデックス検索、およびハイパーテキスト機能を備えており、ご使用の Web ブラウザでご覧になれます。また、PDF 版のドキュメントも提供しており、簡単に印刷することができます。

ドキュメントは、<インストール先ディレクトリ>/doc (デフォルト: /opt/intel_cc_80/doc) ディレクトリにインストールされます。HTML 版のドキュメント・インデックスは、<インストール先ディレクトリ>/doc/ccompindex.htm (デフォルト: /opt/intel_cc_80/doc/ccompindex.htm) です。インタラクティブ形式 (HTML ベース) のトレーニング・チュートリアル、『Enhancing Performance with Intel Compilers』(英語) もドキュメント・インデックスのリンクからアクセスできます。このチュートリアルでは、IA-32 および Itanium ベース・システムにおけるアプリケーションの最適化に役立つコンパイラ・オプションと Itanium アセンブラについて説明します。『Intel® Debugger Manual』(英語) は、インテル・デバッガの doc ディレクトリにあります (デフォルトのディレクトリは、/opt/intel_idb_xx/doc です。xx: は、"idb -V" を実行すると表示される、idb のバージョン番号です)。

『インテル® C++ コンパイラ・ユーザーズ・ガイド』は、次のように複数のドキュメントで構成されています:

GNU glibc C 言語ライブラリについての情報は、Linux OS のベンダ、または GNU の Web サイト www.gnu.org でドキュメントを入手してください。

Manpage の表示

icc(1) manpage では、コマンドライン・オプションおよび iccicpc コンパイラ・コマンドに関する情報のリストが提供されています。icc(1) manpage を表示するには、<インストール先ディレクトリ>/bin/iccvars.*sh ファイルを実行する source コマンドを使用して環境を設定してから、次のコマンドを入力してください:
$ man icc
man コマンドは、表示された内容のスクロール、文字列の検索、特定の場所へのジャンプ、その他の機能を実行する単一キーまたはキーの組み合わせを提供します。例えば、z を入力すると次の画面、w を入力すると前の画面を表示します。man コマンドのヘルプを表示するには、h キーを入力します。ヘルプを閉じるには、q キーを入力して、表示されている manpage に戻ります。検索するには、/ 文字を入力してから検索する文字列 (/string) を入力して、Enter を押します。man コマンドのテキストの表示後、q を押してシェル・コマンドのプロンプトに戻ります。

HTML ドキュメントの表示

HTML 形式のユーザーズ・ガイドを表示する際、以前のように Java* が有効であるブラウザを使用する必要がなくなりました。このドキュメント形式は、標準 Red Hat* ディストリビューションに付属している Web ブラウザで使用できることが確認されています。HTML 形式のユーザーズ・ガイドは Java サポートを必要とせず、さらにブラウザに依存しないようにするため、検索機能が削除されました。ユーザーズ・ガイドで検索を行う必要がある場合は、提供されている PDF 形式のファイル (HTML 形式と同じ内容) を xpdf ビューアで使用してください。ユーザーズ・ガイドの [キーワード] タブは、左ペインの幅を広げてキーワードのエントリが折り重ならないように表示すると効果的です。

PDF ドキュメントの表示

PDF 形式のファイルを表示するには、xpdf ユーティリティ (検索機能を含む) または gv コマンドを使用するか、Adobe Acrobat Reader をインストールします。一部の Linux ディストリビューションでは、mozilla を使用して PDF helper により PDF ファイルが表示されます。

Netscape* による PDF ドキュメントの表示

Adobe Acrobat Reader を使用する場合は、より強力なナビゲーション機能を持つ Netscape から Acrobat を起動して PDF ドキュメントを表示することを推奨します。Netscape から Acrobat Reader を起動できるようにするには、環境変数 PATH で指定したディレクトリに Acrobat Reader をインストールした上で、ブラウザの設定を変更する必要があります。
注: Acrobat Reader の設定が正しく行われていないと、PDF ファイルが上書きされ、再インストールが必要となる場合があります。設定に不備がある場合、ブラウザで [ファイル名をつけて保存] のダイアログが表示されることがあります。ここで、[OK] をクリックしてしまうと PDF ドキュメント・ファイルが上書きされます。Acrobat Reader の設定を更新するには、次の手順を行ってください。
[編集] - [設定] - [Navigator] - [アプリケーション] - [新規]
説明: Portable Document Format
MIME タイプ: application/pdf
拡張子: pdf
アプリケーション: acroread %s
または、ホーム・ディレクトリの .mailcap ファイルに次の行を追加して、acroread を設定することもできます。
application/pdf; acroread %s
Netscape ブラウザのバージョンによっては、[自動的に画像を読み込む] ([編集] - [設定] - [詳細] - [自動的に画像を読み込む]) のオプションを無効にしておかないと、HTML ドキュメント・ファイルを開く際にブラウザがフリーズすることがあります。この場合、ドキュメントの画像をブラウザで表示するには各画像をクリックする必要があります。

追加情報

関連製品とサービス

インテルのソフトウェア開発製品の詳しい情報については、http://www.intel.com/jp/developer/software/products/ を参照してください。関連製品の一部を次にリストします:

著作権と商標について

Intel、インテル、Itanium、Pentium、VTune は、アメリカ合衆国およびその他の国における Intel Corporation またはその子会社の商標または登録商標です。
* 一般にブランド名または商品名は各社の商標または登録商標です。

(C) 2001 - 2004, Intel Corporation. 無断での引用、転載を禁じます。