インテル® C++ コンパイラ 7.0 (Linux* 版)
リリースノート

目次

概要
新機能
パッケージの内容
ドキュメント
動作環境
インストールに関する注意事項
既知の制限事項
解決済みの問題
テクニカル・サポートとフィードバック


概要

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

インストール・パッケージには以下の実行ファイルが含まれています。

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

GNU コンパイラとの互換性

Linux 版インテル C++ コンパイラは GNU gcc コンパイラと極めて高い互換性を備えておいますが、一部互換性のない部分もあります。詳細は、http://www.intel.com/software/products/compilers/clin で公開されている 「Intel Compilers for Linux - Compatibility with the GNU Compilers」(英語) を参照してください。

コンパイラ・ドライバ

コンパイラ・ドライバ (IA-32 アプリケーションの場合は icc、Itanium ベース・アプリケーションの場合は ecc) は、ファイル名の拡張子に基づいて C 言語または C++ 言語のいずれを使用するかを判断します。事前処理されたファイル (*.i) を処理する場合、eccicc の各ドライバは C 言語を、C++ のドライバである ecpc および icpc は、C++ 言語を想定します。ただし、この設定はコンパイラ・オプションで変更することもできます。C++ アプリケーションの場合は C++ コンパイラ・ドライバの使用を推奨します。

関連製品とサービス

インテルのソフトウェア開発製品の詳しい情報については、http://www.intel.com/software/products (英語) でご覧になれます。

インテル・ソフトウェア・カレッジでは、インタラクティブ形式のチュートリアル (IA-32 ベース・システム用)、ドキュメント、サンプルコードなどを通じてインテル・アーキテクチャやソフトウェアの最適化手法を紹介しています。これは本製品には含まれていませんが、http://www.intel.com/software/college/ (英語) で入手できます。

インテル® VTune™ パフォーマンス・アナライザは、 アプリケーションがどのように CPU を利用するかを評価し、アプリケーションのパフォーマンスの向上に必要な修正部分を特定するのに役立ちます。これも本製品には含まれていませんが、http://www.intel.com/software/products/vtune/ (英語) で入手できます。

インテル・パフォーマンス・ライブラリ集には、各種のインテル・プロセッサ向けに最適化されたルーチン群が収められています。これも本製品には含まれていませんが、http://www.intel.com/software/products/perflib/index.htm (英語) で入手できます。

新機能

新しく追加されたコンパイラ機能

Linux 版インテル C++ コンパイラ バージョン 7.0 は、従来のバージョンに比べ GNU C 言語エクステンションへの対応が強化されています。また、OpenMP* への対応の強化、プロシージャ間の最適化 (IPO) の改良、コンパイル時間の短縮などのほか、プロファイルに基づく最適化 (PGO) でソース・ファイルのリロケーションが行えるようになりました。 ループのアンロールやソフトウェアのパイプライン化 (Itanium コンパイラのみ)、ベクトル化 (IA-32 コンパイラのみ)、プリフェッチ、ループカウントなど、ループ最適化に関するコンパイラ・ディレクティブも新たにサポートされています。インテル C++ コンパイラ 7.0 は OpenMP 2.0 仕様をサポートしています。ただし、WORKSHARE ディレクティブはサポートされていません。また、配列に対する REDUCTION も完全にはサポートしていません。 Open MP の制限については、「既知の制限事項」を参照してください。新機能についての詳細は、ユーザーズ・ガイドの「本リリースの新機能」を参照してください。

インストール時のライセンス・チェック
Linux 版インテル C++ コンパイラでは Globetrotter* 社の FLEXlm* 電子ライセンス・テクノロジを使用しています。インテル C++ コンパイラのインストール時にライセンス・チェック機能が働き、コンポーネントをインストールする前に有効なライセンスをチェックします。詳細は、「インストールに関する注意事項」 を参照してください。

インテル Itanium 2 プロセッサのサポート

インテル・コンパイラ 7.0 には、インテル Itanium 2 プロセッサへの最適化を行うためのコンパイラ・オプションとして新たに -tpp2 が追加されました。詳細は、ユーザーズ・マニュアルの「新しいオプション」の項を参照してください。

トレーニング用チュートリアル

本製品には新しいトレーニング用チュートリアルとして「Enhancing Performance with the Intel® Compiler」が提供されています。このチュートリアルはインテル・コンパイラでサポートされている主なコンパイラ最適化機能について解説しているほか、これらの最適化手法でアプリケーションのパフォーマンスを改善する方法を具体的な例を挙げて紹介しています。このチュートリアルで取り上げている最適化手法は、以下のとおりです。 このチュートリアルは、/opt/intel/compiler70/training/tutorial/index.htm (デフォルト) にインストールされます。

インテル・デバッガ

インテル・デバッガは (idb) は、コンパイラのバージョン 5.0.1 および 6.0 で提供されていた ldb デバッガに代わるものです。コンパイラ設定スクリプトを作成した後 (「コンパイラの環境設定用スクリプト・ファイル」)、idb を実行し、ヘルプを参照してください。

コンパイラの設定

セッションの開始時に毎回、環境変数を作成するためのスクリプトを実行する必要がなくなりました。ただし、PATH と LD_LIBRARY_PATH のみは必要となりますが、これは .login ファイルによって更新することができます。詳細は、「コンパイラの環境設定用スクリプト・ファイル」を参照してください。

クロス・コンパイラ

Linux 版インテル・コンパイラ 7.0 には Itanium ベース・アプリケーション用のクロス・コンパイラは含まれていません。 Itanium ベース・アプリケーションを開発する際は、Itanium 2 プロセッサ・ベース のコンピュータ上で動作するネイティブ・コンパイラをご使用ください。

Itanium ベース・アプリケーション用コンパイラでは、オブジェクト直接生成機能がデフォルトで有効になっています。このため、いったん中間のアセンブリ・ファイルを自動生成してアセンブラを起動するのではなく、コンパイラがオブジェクト・ファイルを直接生成します。オブジェクト直接生成機能を無効にするには、コンパイラ・オプションで '-use_asm' を指定してください。

パッケージ内容

IA-32 ベース・アプリケーション開発用インテル C++ コンパイラ

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

Itanium ベース・アプリケーション開発用インテル C++ コンパイラ

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

ドキュメント

コンパイラおよびアセンブラのドキュメントは、HTML 形式で提供されており、ナビゲーション、検索およびハイパーテキストなどに対応しているため、ご使用の Web ブラウザでご覧になれます。また、ドキュメントは PDF 版でも用意しており、Adobe Acrobat Reader* で簡単に印刷ができます。

ドキュメントは、<インストール先ディレクトリ>/compiler70/docs ディレクトリにインストールされます。また、 HTML のインデックス文書は <インストール先ディレクトリ>/compiler70/docs/ccompindex.htm にあります。 GNU glibc C 言語ライブラリについての情報は、Linux OS のベンダ、または GNU の Web サイト www.gnu.org でドキュメントを入手してください。

入門ガイド、最適化および互換性に関する情報など、その他 のドキュメントについては、本製品の Web ページ (http://www.intel.co.jp/jp/developer/software/products/compilers/clin) で提供しています。

HTML ドキュメントの表示

Netscape* ブラウザで HTML 文書を表示するには、以下のオプションを有効にしておく必要があります。
[編集] - [設定] - [詳細] - [Java を有効にする]
[編集] - [設定] - [詳細] - [JavaScript を有効にする]
[編集] - [設定] - [詳細] - [スタイルシートを有効にする]

PDF ドキュメントの表示

PDF 形式のファイルを表示するには、xpdf ユーティリティを使用するか、または Adobe Acrobat Reader をインストールします。PDF ドキュメントは、Netscape から Acrobat を起動して表示すると、より強力なナビゲーション機能を利用できるため、この方法をお勧めします。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 ドキュメント・ファイルを開く際にブラウザがフリーズすることがあります。この場合、ドキュメントの画像をブラウザで表示させるには各画像をクリックする必要があります。

動作環境

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

Itanium プロセッサの動作環境

Itanium ベース・システム対応ネイティブ・コンパイラは、Itanium ベースのシステム上で動作します。

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

インテル・コンパイラ製品は、Globetrotter* 社の FLEXlm* 電子ライセンス・テクノロジを使用しているため、 インストール時に有効なライセンスが必要となります。コンパイラをインストールするには、以下の手順に従ってください。

  1. インテル C++ コンパイラ 7.0 のインストール・プログラムは、製品コンポーネントをインストールする前に有効なライセンスをチェックします。また、プログラムのコンパイル時とビルド時にもライセンス・ファイルのチェックを行います。インテル・プレミア・サポートからダウンロード版のコンパイラを入手した場合については、インテル C++ コンパイラ バージョン 6.0 で使用していたライセンス・キーのサポート・サービス期限が切れていなければ、そのライセンス・キーがバージョン 7.0 でもそのまま使用できます。
    インストール前に、以下の手順に従ってライセンス・ファイルをセットアップしてください。



  2. コンパイラのダウンロード版を入手した場合は、パッケージを解凍 (untar) します。
  3. root ユーザとしてログインし、インストール・スクリプト (install) を実行します。 root ユーザとしてログインしていない場合は rpm コマンドを正しく実行できません。なお、rpm2cpio の入った RPM ファイルを解凍してコンパイラの環境変数や設定ファイルを編集 (後述) すれば root 権限なしでもコンパイラをインストールできますが、この方法はサポート対象外となります。
  4. インストールするコンパイラ、デバッガを選択します。ここではデフォルトの RPM オプション (-U --replacefiles) のまま既存のファイルを上書きすることをお勧めします。インストール先ディレクトリは /opt/intel を推奨します。
  5. インストールが完了すると、インストールが正常に行われたパッケージの一覧が表示されます。内容を確認した上で "x" を入力して終了してください。
  6. コンパイラの環境変数を設定するためのスクリプトを実行します。

    source <インストール先ディレクトリ>/compiler70/ia32/bin/iccvars.sh(.csh)
    source <インストール先ディレクトリ>/compiler70/ia64/bin/eccvars.sh(.csh)

  7. コンパイラを実行します。

コンパイラの環境設定用スクリプト・ファイル

インテル・コンパイラは環境変数を使用します。この環境変数は以下のスクリプトによって簡単に設定できます。

<インストール先ディレクトリ>/compiler70/ia32/bin/iccvars.sh(.csh)(IA-32 アプリケーション用)
<インストール先ディレクトリ>/compiler70/ia64/bin/eccvars.sh(.csh)(Itanium プロセッサ・ベース・アプリケーション用)

デフォルトのコンパイラ・オプションは以下の設定ファイルに格納されています。
<インストール先ディレクトリ>/compiler70/ia32/bin/icc.cfg (IA-32 アプリケーション用)
<インストール先ディレクトリ>/compiler70/ia64/bin/ecc.cfg (Itanium プロセッサ・ベース・アプリケーション用)

これらの設定ファイルには、システム全体で有効となるデフォルトのコンパイル・オプションを記述します。なお、新しいバージョンのインテル・コンパイラをインストールする際は、カスタム・オプションを記述した設定ファイルをいったん別の場所に保存し、インストール後にリストアするようにしてください。

インストール時に作成されるデフォルトの cfg ファイルには   "-Xlinker -rpath " というオプションが設定されています。
このオプションは共有ライブラリのパスを実行ファイルに埋め込むというもので、これによって変数 LD_LIBRARY_PATH を設定する必要がなくなります。しかし、インストール構成の異なるシステムにアプリケーションを移動すると動作しなくなります。このような場合は、cfg ファイルからこのオプションを削除して、環境変数 LD_LIBRARY_PATH で共有ライブラリの場所を指定してください。

インストール時の注意点

RPM 4.0.2 インストール時のエラーについて


RPM 4.0.2 はデフォルト以外のディレクトリにはインストールできません。この問題は RPM 4.0.3 で修正されています。

インテル C++ コンパイラとインテル Fortran コンパイラを別々のディレクトリにインストールした場合のエラーについて

Linux 版のインテル C++ コンパイラとインテル Fortran コンパイラは一部のファイルを共有しています。これらのコンパイラを別々のディレクトリにインストールして、インストール・スクリプトの RPM オプションをデフォルトのまま実行するとコンパイラが正常に動作しなくなります。したがって、インテル C++ コンパイラとインテル Fortran コンパイラは同じディレクトリにインストールするようにしてください。ただし、コンパイラのインストール・パッケージを untar で解凍する際は必ず別々のディレクトリで行ってください。

カウント方式のライセンスを使用する際の FlexLM Server について

Linux 版コンパイラの CD-ROM 版パッケージには、ライセンス・サーバの設定を支援するソフトウェアとして Intel® License Manager for FLEXlm*が含まれています。ただし、現在の CD-ROM 版パッケージでは、Intel License Manager for FLEXlm* を CD-ROM から直接インストールできないという制限があります。この問題は、以下の方法で回避することができます。

1. コンパイラのインストール・プロセス中には Intel License Manager for FLEXlm* をインストールしないでください。コンパイラのインストール時にライセンス・サーバが必要になると、Intel License Manager for FLEXlm* のインストールを開始するかどうかを確認するダイアログ ([Installing Intel® License Manager for FLEXlm*, Do you wish to begin the installation process ([y]es/[q]uit)? [y]]) が表示されますので、[q] を入力してください。次に、[Do you really want to quit ([y]es/[n]o)? [n]] と表示されたら、[y] を入力してください。

2. コンパイラのインストールが完了したら、改めて Intel License Manager for FLEXlm* のインストールを手動で行ってください。

1) ライセンス・サーバ・ファイルを既存の書き込み可能なディレクトリ (例: /home/me/temp) にコピーします。例えば、CD-ROM ディストリビューションが /mnt/cdrom にマウントされているとすると、IA-32 プラットフォーム用のライセンス・サーバ・ファイルは /mnt/cdrom/flexlm32 に、Itanium プラットフォーム用のライセンス・サーバ・ファイルは /mnt/cdrom/flexlm64 にあります。

$cd /home/me/temp
$cp /mnt/cdrom/flexlm32/* . (IA-32 ベース・システムの場合) )
$cp /mnt/cdrom/flexlm64/* . (Itanium ベース・システムの場合)

2) 次に、CD-ROM 内のディレクトリからではなく、その他の書き込み可能なディレクトリから "Install_INTEL" コマンドを実行してください。$Install_INTEL

コンパイラのアンインストール

root 権限でログインして、以下のアンインストール・スクリプトを実行してください。


既知の制限事項

大きなサイズのスタックを必要とする 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 の場合2MB、Itanium ベース・システムの場合4MB にまで引き上げられています。

上記の回避方法は 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 フラグを使わないでください)。

バイナリ・レベルでの下位互換性

Linux 版インテル C++ コンパイラで生成したコードは、以前のバージョンのインテル C++ コンパイラとは互換性がありません。このため、旧バージョンのインテル・コンパイラ/ライブラリでビルドしたオブジェクト・ファイル、スタティック・ライブラリ、共有ライブラリ、実行ファイルは、最新バージョンのオブジェクト・ファイル、スタティック・ライブラリ、共有ライブラリと組み合わせては使用できません。インテル・コンパイラ バージョン 7.0 では、共有ライブラリの互換性に起因する障害の多くを実行前に検出できるよう、共有ライブラリにバージョン番号を実装しています。インテル・コンパイラ 7.0 で提供される共有ライブラリには、以前のバージョンのコンパイラのライブラリとは異なるバージョン番号がつけられています。このため、旧バージョンの共有ライブラリをビルドした実行ファイルや共有オブジェクトは、新バージョンのコンパイラでリビルドするか、あるいは最初にビルドしたライブラリのバージョンを指定するか、いずれかを行う必要があります。

最新バージョンのインテル C++ コンパイラに関する既知の制限事項および注意事項については、以下のリンク先を参照してください。

修正された問題点

Linux 版インテル C++ コンパイラの最新バージョンで修正された問題点については、以下のリンク先を参照してください。

テクニカル・サポートとフィードバック

サポート登録:  インテルでは、お客様のフィードバックを非常に重視しています。本製品に付属のツールについてテクニカル・サポートおよび製品のアップデートを受けるには、登録が必要です。登録についての詳細は、http://support.intel.com/support/performancetools/c/linux/ (英語) で、[Register For Support] をクリックしてください。

注:

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

問題の送信方法

インテル・プレミア・サポート Web ページから問題を送信する場合は、次の手順に従ってください。
  1. https://premier.intel.com/ (英語) にアクセスします。 問題を送信するには、ブラウザの Java* および Javascript* 機能を有効にしてください。
  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*] を選択します。Itanium ベース・システムのハードウェアに関する問題の場合は、[Workstation SDV (Itanium Processor)] または [Server SDV (Itanium Processor)] を選択します。
  9. 質問を入力して、次のウィンドウ内のフィールドに入力し、問題箇所の送信を完了します。

    トラブル通知や製品に関するご意見を送られる際は、以下のガイドラインを参考にしてください。

    テクニカル・サポート・エンジニアが 1 営業日以内に回答します。

    著作権と商標について

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

    Copyright© 2001 - 2003 Intel Corporation. 無断での引用、転載を禁じます。