インテル ソフトウェア開発製品最新情報» 詳細

インテル ソフトウェア カンファレンス 開催決定!» 詳細

インテル ソフトウェア開発製品の記事特集サイトを開設しました» 詳細

Window 7 に対応!インテル コンパイラー 11.1 日本語版» 詳細

インテル ソフトウェア開発製品に関する書籍をご紹介します» 詳細

並列化にはどのようなテクニックがありますか? 並列化の疑問にお答えします。» 詳細

インテル® C++ コンパイラー Linux 版

パフォーマンス、互換性で選ぶなら

インテル® マルチコア・プロセッサーを活用するようにソフトウェアを自動的に最適化および並列化するほか、 Linux アプリケー ションから最適なパフォーマンスを引き出します。コンパイラーは、 GNU C++ コンパイラー (GCC) とソースおよびバイナリーレ ベルで互換性があります。

インテル® コンパイラー 11.1 日本語版 好評発売中! 11.1 update6 ダウンロード開始

インテル C++ コンパイラー・プロフェッショナル・エディション Linux 版には、次の 4 製品がバンドルされています。

バンドル製品同梱表はこちら / アップグレード方法はこちら

インテル® デバッガー日本語ドキュメント配布開始!!


特徴

  • インテル® C++ コンパイラー Linux 版は、 次世代のハードウェアに対応した次世代のソフトウェアを作成します。
    • マルチコア開発のサポート - 開発者はインテル® マルチコア・プロセッサーで非常に高いパフォーマンスを発揮するアプリケーションをすばやく作成することができます。
    • 向上したパラレライザーとベクトライザー - C++ 例外処理における最適化の機能も向上し、また C++ クラス階層の解析や最適化も行います。
    • セキュリティー・チェックと診断 - バッファー・オーバーフローなどのセキュリティー脆弱性の影響を受けにくいコードを作成できます。
    • 最適化レポート - アプリケーションのチューニングでインテルの高度な最適化を行えるよう、より詳細な最適化診断がユーザーに提供されます。
    • 最新のマルチコア・プロセッサーのサポート - インテル® Core™ i7 プロセッサー、インテル® Atom プロセッサーを始めとする最新のクアッドコア、デュアルコアをサポートします。
    • 新しいデバッガー GUI - Eclipse RCP ベースの GUI でアプリケーションの並列化を見やすくします。

  • 高度な最適化機能で、インテル® プロセッサーの性能を最大限に引き出したアプリケーションを手軽に開発できます。

  • 標準規格との広範囲な互換性があります。
    GCC とのソースおよびオブジェクトの互換性により、既存のアプリケーションを再コンパイルして、パフォーマンスを向上することができます。Linux 上での Eclipse 3.3.x/3.4.x および CDT 4.0.2/5.0.0 への統合が追加されました。ISO 標準(ISO/IEC 9899:1990、ISO/IEC 14882:1998) に対応します。

  • インテル® デバッガーが含まれており、最適化されたコード (特定のハードウェア・アーキテクチャー向けに最適化されるように大幅に変換されたデバッギング・コードなど) のデバッグを行うことができます。

  • クラスター OpenMP (インテル® C++ コンパイラー Linux 版 対応) は、OpenMP プログラムを修正して 64 ビットインテル® アーキテクチャー・ベースのクラスターで実行できるようにします。

  • 本製品を使用するには、インテル社のサイトからダウンロードしてください。詳細は、製品サイトをご確認ください。

  • さまざまなアプリケーションのパフォーマンスを向上します

    インテル C++ コンパイラー Linux 版 デジタルホーム、ゲーム、およびエンターテイメント・アプリケーション は、マルチコア・プラットフォームでの並列処理に優れているインテル® C++ コンパイラーを利用することで、ユーザーの操作を中断することなく、バックグラウンドでダウンロード、セキュリティー、その他のタスクを処理できます。
    インテル C++ コンパイラー Linux 版 携帯機器向けソフトウェア は、インテル® Core(TM) Duo プロセッサー・ベースのモバイル・マルチコア・プラットフォームで、消費電力を抑えてバッテリーの寿命を延ばしながらパフォーマンスを引き出すことができます。
    インテル C++ コンパイラー Linux 版 次世代のデータを多用するアプリケーション開発者 は、インテル® コンパイラーを使用してレイテンシーや処理時間を減らすことで、大幅にパフォーマンスを向上させることができます。また、パフォーマンスに大きな影響を与えることなく、機能を追加することも可能です。

インテル® C++ コンパイラー 11.1 Linux 版のポイント

インテル® C++ コンパイラー Linux 版は、 次世代のハードウェアに対応した次世代のソフトウェアを作成します。

機能 利点

新しいプロセッサーの早期サポート

次世代の 256 ビット命令セットに対応したインテル® AVX をいち早くサポートしています。インテル® AVX は、浮動小数点を多用するアプリケーション向けに設計されています。また、インテル® Xeon® 5500 EP 番台のプロセッサーもサポートします。従来のプロセッサーも引き続きサポートします。

新しい標準の早期サポート

AES (advanced Encryption Standard) 命令セットをサポートします。AES は、米国政府の対照暗号化の標準方式で、以下の命令をサポートします。
・ハイパフォーマンスな AES の暗号化と複合化を促す 4 つの命令
・AES 鍵拡張プロシージャーをサポートする 2 つの命令

新しい OS のサポート

Eclipse* CDT 5.0、SLES11、Fedora* 10、Ubuntu 8.10 をサポートします。

OpenMP* の Parallel Lint

OpenMP による並列化ソースコートを分析し、メモリーリーク、デッドロックなどの問題を診断します。



次の機能は、バージョン 11.0 からの新機能です。
機能 利点

新しいプロセッサーのサポート

インテル® Atom™ プロセッサーのサポートが追加されました。新しいモバイル・インターネット・デバイス向けにハイパフォーマンスで低消費電力のアプリケーションを開発できます。

コンパイラーとデバッガー

新しい例外処理

ユーザー設定オプションで、より最適化されたコードを生成し、アプリケーション・パフォーマンスの向上を導きます。
C++ ラムダ関数 すでに次世代の C++ 標準の一部になっているインテルの C++ ラムダ関数が利用できるようになりました。STL や インテル® TBB のようなテンプレートやライブラリーへのテンプレート呼び出しを簡略化します。並列化を追加する簡単な方法です。
OpenMP* 3.0 OpenMP により、並列性の抽象化レベルを上げて API から離し、スレッド化を簡略化して、コードの移植性を高めます。以前はループベースのデータの並列化に限られていましたが、新しい 3.0 規格では、データの並列化とタスクの並列化の両方を単純化します。
向上した valarray オプション 低レベルのハードウェア機能によりアプリケーション・パフォーマンスを強化する配列の演算処理テンプレートです。ソースコードの変更は不要!
デフォルトで SSE2 が有効 コンパイラーを通してインテル® ストリーミング SIMD 拡張命令の利点を自動で活用できます。煩雑な低レベルのコーディング作業を行うことなく、インテル® プロセッサーの性能を最大限に引き出します。その他のホスト/ターゲット向けに再設定も可能です。
10 進浮動小数点 IEEE 754R 標準実装により、FP バイナリー形式で暗黙的に定義される回避できない精度の問題にも対応します。金融、会計、請求処理、E- コマースなどの分野に最適です。

IA-32 およびインテル® 64 アーキテクチャー用の並列デバッガー

複雑性もなく、優れたマルチスレッド・アプリケーション実行制御を実現します。並列領域のシリアル化、OpenMP 構造についての詳細な情報を利用できます。
新しいデバッガー GUI Eclipse RCP ベースの GUI でアプリケーションの並列化を見やすくします。コマンドライン・サポートも提供。
スレッドに関するフロントエンドの診断 静的に割り当てられた変数への参照や代入と、静的に割り当てられた変数のアドレス参照に関する警告メッセージを提供します。
並列コンパイル 利用可能なプロセッサーに適切にファイルを割り当て、マルチコア・プロセッサーの利点を最大限に活用し、変更/コンパイル/デバッグサイクルを短縮するこにより、ビルド工程をサポートします。
スタティックの検証 ソースファイルの問題を検出して解析します。OpenMP 宣言子、境界違反、メモリー破壊、メモリーリーク、バッファー・オーバーフロー、初期化されていないメモリーなどの問題が診断されます。
インテル® スレッディング・ビルディング・ブロック (インテル® TBB)

ループ、コンテナー、ミューテックス、アトミック演算など

インテル® TBB は、高レベルで STL のようなライブラリー関数を提供し、既存のコードや設計中のコードにおいて並列化の利点を活用できるようにします。ループ、コンテナー、ミューテックス制御、アトミック演算、複雑なタスク・スケジューリングなどを包括し、スレッド化を簡略化して、時間を節約します。プロセッサーが追加されるごとにスケールするアプリケーションを生成します。
タスク指向のスレッド化 ハードウェアに近い低レベルの重い構造に対する面倒で非効率的なスレッド化作業を省きます。インテル® TBB ランタイム・ライブラリーにスレッド化作業は任せ、開発者はアプリケーション機能に専念できます。
スレッド化パフォーマンス インテル® スレッディング・ビルディング・ブロックは、計算を多用する作業の並列化に重点を置き、より高いレベルで、より簡単なソリューションを提供します。
データの並列化によるスケーラブルなパフォーマンス インテル® スレッディング・ビルディング・ブロックは、コレクションをより小さなチャンクに分割することで、より多くのプロセッサー数に対応してスケールするデータ並列プログラミングに重点を置いています。データ並列プログラミングでは、プロセッサーが追加されるごとにプログラム・パフォーマンスが向上します。
デバッグ・ライブラリーとリリース・ライブラリー インテル® TBB の関数には、デバッグ形式とリリース形式の関数があります。ソフトウェアの製品バージョンをビルドする前に、広範囲な内部確認が可能です。これにより、開発を簡単にし、より優れたパフォーマンスを提供します。

インテル® インテグレーテッド・パフォーマンス・プリミティブ (インテル® IPP)

インテル® Core™ i7 プロセッサーとインテル® Atom™ プロセッサーのサポート

新世代のプロセッサーの能力を最大限に引き出すとともに、既存の開発環境を引き続きサポートします。これまでの投資を無駄にしません。これは、新しいハードウェア・プラットフォームが次々と登場する世界における重要なポイントです。
遅延モード画像処理 (DMIP) 層 インテル® IPP ライブラリーにサンプルとして追加されました。大規模な画像におけるパイプライン化された画像演算のソリューションを提供し、メモリーの最適化を活用して、マルチスレッド環境におけるパフォーマンスを向上します。
UIC (Unified Image Codec) フレームワーク・サンプル・ライブラリー 各種画像コーデック (JPEG、JPEG2000 など) のプラグアンドプレイとしてインターフェイスを標準化し、実装と保守を簡便化します。
すべての関数ドメインのスレッド化されたスタティック・ライブラリー スタティック・ライブラリーを使用するユーザーに、より高いパフォーマンスのスレッド化の利点を提供します。
高レベルの LZO データ圧縮ライブラリー + 向上した Zlib、gzip、bzip2 アルゴリズム 標準的なインターフェイスを使用した、最も一般的なデータ圧縮アルゴリズムのハイパフォーマンスな実装を実現します。
データ完全性関数ドメイン リードソロモン・エラー訂正コードで転送、格納、エンコードにおけるデータの完全性を保ちます。
多種の新しい関数と IPP サンプルの強化 ユーザーの要望に応えて、新しい信号処理および画像処理変換とコーデック強化を含む追加機能が提供されます。

インテル® マス・カーネル・ライブラリー (インテル® MKL)

新しい「階層化」アーキテクチャー

この新しいアーキテクチャーにより、異なる開発環境とプロセッサーに対して最大限のサポートを 1 つのパッケージで提供します。
新しいスレッド化層 インテル® MKL は、開発環境と合致するレイヤーバージョンをリンクするだけで、開発アプリケーションのスレッド化との互換性問題を引き起こすことなく安心して使用できます。
離散フーリエ変換インターフェイス DftiCopyDescriptor 関数が FFT の使用時の便利性のために追加されました。DFTI を呼び出す、静的にリンクされた実行ファイルのサイズが大幅に減少し、複素数格納が実数-実数変換用に利用できるようになりました。
LAPAC の強化 冗長な LAPACK 計算の追跡、中断機能が追加されました。mkl_progress という関数をユーザー・アプリケーションで定義して、MKL LAPACK ルーチンのサブセットから呼び出すことができます。
VML の拡張 パフォーマンスを重視して、すべての VML 関数がスレッド化されました。新しい「パフォーマンス強化」モデルが、数学関数の不正確性がパラメーターの不正確性を決定付けないアプリケーション向け (例: モンテカルロ・シミュレーションやメディア・アプリケーション) に追加されました。
スパース BLAS の拡張 スレッド化されたレベル 3 スパース BLAS 三角ソルバーとすべてのデータ型 (単精度、複素数、倍精度複素数) のサポートなど、機能が向上しています。

その他の機能

新しい Linux サポート Fedora* 9、Ubuntu* 8.04、GNU ツールチェーン 4.2 と 4.3 をサポートします。詳細は「動作環境」を参照してください。
簡素化されたインストール シームレスで、すべてのコンポーネントをほぼワンステップでインストールできる最新の「完全」インストールを提供します。
新しいオンライン・サポート・コミュニティー 強化された、インテルのオンライン・コミュニティー・サポート・フォーラムとナレッジベース検索機能により、開発者の疑問に素早く対応します。これは、インテル® プレミアサポートとは別に利用できます。
プロセッサーのサポート インテル® Atom™ プロセッサー・サポートが追加されました。新世代のプロセッサーの能力を最大限に引き出すとともに、既存の開発環境を引き続きサポートします。これまでの投資を無駄にしません。これは、新しいハードウェア・プラットフォームが次々と登場する世界における重要なポイントです。

機能と利点

インテル® C++ コンパイラー・プロフェッショナル・エディションのコンポーネント

インテル® コンパイラーおよびライブラリーのマルチスレッド技術と最適化技術は、最新のマルチコア・プロセッサー向けのハイパフォーマンスなアプリケーション開発に役立ちます。




機能と利点
インテル® C++ コンパイラー Linux 版を使用してソフトウェアをコンパイルすると、以下のような高度な最適化機能を利用できます。

機能 利点

GNU ツールチェーンとの互換性

Linux ベースのシステムや同システムでのソフトウェア開発に対するこれまでの投資を無駄にしません。インテル® C++、GCC または両方の使用が可能!

マルチスレッド・アプリケーションのサポート

11.1 では OpenMP* 3.0 (データ並列化と新しいタスク並列化) と自動並列化が含まれ、マルチスレッド・アプリケーションを効率的に開発できます。

自動ベクトル化

最新のインテル® プロセッサーのストリーミング SIMD 拡張 (SSE) 命令セット・アーキテクチャー (SSE、SSE2、SSE3、SSSE3、SSE4) を活用してコードを並列化します。

ハイパフォーマンス並列最適化機構 (HPO)

ループの構造を変更して最適化し、自動ベクトル化、OpenMP または自動並列化により、キャッシュアクセスとメモリーアクセス、SIMD 命令セット、マルチコアなどのプロセッサー機能を最大限に活用できるようにします。シングルパスでコンパイルし、コンパイル時間を向上させ、より信頼性のあるコードを生成します。 

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

ループ内で呼び出しを行うプログラムなど、小・中規模の関数パフォーマンスを大幅に向上させます。IPO 解析機能では、ほかのコンパイラーでも検出できない、初期化されていない変数や OpenMP API 問題などの脆弱性やコーディング・エラーに関するフィードバックも提供します。

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

コードのレイアウトを最適化してコードサイズを縮小します。分岐予測ミスが少なくなるため、命令キャッシュのスラッシングが減り、アプリケーションのパフォーマンスが向上します。

インテル® スレッディング・ビルディング・ブロック

受賞暦のある C++ テンプレート・ライブラリーで、スレッドをタスクに抽象化し、安定性を備えた、移植性とスケーラビリティーに優れた並列アプリケーションを作成します。インテル® TBB は並列アプリケーションを実装し、マルチコア・プラットフォームの性能を引き出す最も効果的な手法を提供します。

インテル® マス・カーネル・ライブラリー

最適化されたスケーラブルな演算ルーチンが含まれ、パフォーマンスを最大限に引き出し、現在のプラットフォームから将来のメニーコア・プラットフォームへのシームレスなフォワード・スケーリングを提供します。

インテル® インテグレーテッド・パフォーマンス・プリミティブ

マルチコア対応の機能豊富なライブラリーです。マルチメディア、データ処理、通信アプリケーション向けに高度に最適化されたソフトウェア関数が含まれています。

インテル® デバッガーによる最適化されたコードのデバッギング

インテル® アーキテクチャー用に最適化されたコードのデバッグプロセスを効率化します。新しいスレッド化コードのデバッグ機能と新しい GUI も提供します。

統合、簡略化された新しいインストール機能

簡単に素早くすべての機能にアクセスできます。簡略化された「カスタム」インストールで、必要なコンポーネントのみを容易に特定できます。 

インテル® プレミアサポート

パスワードで保護されたプライベート・アカウントを提供します。また、新しくオンライン・コミュニティー・サポート・フォーラムが登場し、より迅速な情報伝達が可能になりました。   テクニカルサポート、インタラクティブな問題管理、テクニカルノートやアプリケーション・ノートへのアクセス、製品アップデートなど、すべての商用ライセンスおよびアカデミックライセンスで利用可能です。


Eclipse IDE との統合
Eclipse IDE との統合機能がインテル® Itanium® プロセッサーを搭載した Linux システムでも利用できるようになりました。
コンパイラーは、コマンドライン・インターフェイスを使用して Eclipse 内から起動できます。
Eclipse との統合により、インテル® C++ コンパイラー Linux 版を、make、Emacs、gdb などの主要なツールとともに使用できます。


高度な最適化機能の詳細

このセクションでは、コンパイラーの高度な最適化機能についての詳細を説明します。

マルチスレッド・アプリケーションのサポート
OpenMP および自動並列化は、シリアル・アプリケーションを並列アプリケーションに変換して、インテル® Core™ Duo プロセッサーやデュアルコア インテル® Itanium® 2 プロセッサーのようなマルチコア・テクノロジーや対称型マルチプロセシング・システムを最大限に活用できるようにします。
OpenMP は、移植性に優れたマルチスレッド・アプリケーション開発のための業界標準であり、 細粒度 (ループレベル) および粗粒度 (関数レベル) のマルチスレッド化が効率的に行えます。

OpenMP 宣言子は、シリアル・アプリケーションを並列アプリケーションに変換する強力で簡単な方法です。これにより、マルチコアシステムおよび対称型マルチプロセッサー・システム上の並列実行から潜在的なパフォーマンス・ゲインを引き出すことができます。
自動並列化は、ループを自動的にスレッド化することで、マルチプロセッサー・システムにおけるアプリケーションのパフォーマンスを向上させます。自動並列化機能は安全に並列実行できるループを検出し、これらのループに関してマルチスレッド・コードを自動的に生成するため、イタレーションのパーティショニング、データの共有、スレッドのスケジューリング、同期化といった低レベルの細かい作業をユーザーが行わなくても並列化が可能となり、 マルチプロセッサー・システムやハイパースレッディング・テクノロジー (HT テクノロジー) 対応システムの強力なパフォーマンスを活かすことができます。
 
マルチスレッド・アプリケーションのサポートに関する詳細は、スレッディング・デベロッパー・センター (英語) を参照してください。

ハイパフォーマンス並列最適化機構 (HPO)

バージョン 11 におけるこの革新的な機能は、自動ベクトル化、自動並列化、ループ変換をシングルパスにまとめ、より高速かつ効率的に、そしてより安定性に優れた離散フェーズを実現します。

HPO は、プログラムループの最適化と構造の再構築を行い、自動並列化、OpenMP、自動ベクトル化がスムーズに行えるようにします。HPO の最適化テクノロジーは、対象のプログラムとループ構造で正しい最適化判断を下せるよう、独自の効用分析を利用します。その他の最適化とともに、ループのアンロール、ピーリング、交換、分割などの多くの変換を行い、プロセッサーのキャッシュ・アーキテクチャー、SIMD 命令セット、マルチコアが活用できるようにします。


自動ベクトライザー (ベクトル化の自動処理)

ベクトル化は、コードを自動的に並列化して、プロセッサーの能力を最大限に引き出します。この高度な最適化機能は、ループを解析し、MMX® テクノロジー、SSE、SSE2、SSE3、SSSE3、SSE4 拡張命令を使用してループのイタレーションを安全かつ効果的に並列実行できるコードを自動的に生成します。図 1 は、1 つの SSE2 命令で計算された 4 つのイタレーションをベクトル化したループの例を示しています。

図 3.  ベクトライザー
図 1. ベクトライザー

ベクトル化を使用することで、アプリケーション・コードを最適化し、インテル® プロセッサーで実行するときにこれらの新しい拡張命令を有効に活用することができます。ベクトライザーの新しい機能には、アライメント済みロードを生成するループピーリング、フルキャッシュ・ラインのプリフェッチをマッチングするループ・アンローリングといった先進的かつダイナミックなデータ・アライメント手法があります。


プロシージャー間の最適化 (IPO)
プロシージャー間の最適化を行うと、ループ内で呼び出しを行うプログラムなど、小・中規模の関数を大量かつ頻繁に使用するプログラムにおいてパフォーマンスが大幅に向上します。この処理は自動的に実行され、個々の関数について最適化を行うのではなく、複数のファイルまたはプログラム全体を解析して最適化を行います。

図 1.  プロシージャー間の最適化のプロセス
図 2. プロシージャー間の最適化のプロセス

IPO プロセス (図 2 を参照) は、最初に IPO オプションを指定してソースファイルをコンパイルし、コンパイラーで使用される中間言語 (IL) を含むオブジェクト (.o) ファイルを作成します。リンク時に、コンパイラーはすべての IL 情報を組み合わせて最適化用に解析します。IPO プロセスの一部として行われる最適化には、プロシージャーのインライン展開と再構築、デッドコード (未使用コード) の除去、定数伝播、あるいは既知の定数値の置換があります。複数のプロシージャーにコンテキストを追加することで、プロシージャー内で行うよりも安全に高度な最適化を行うことができます。

IPO の解析機能では、コンパイラーのフロントエンドによる解析に厳密に従うコンパイラーではうまく検出できない、初期化されていない変数などの脆弱性やコーディング・エラーについてのフィードバックも提供します。


プロファイルに基づく最適化 (PGO)
コンパイル時に PGO を行うことによって、(1) プロセッサーのマイクロアーキテクチャーの性能が十分に引き出され、(2) 命令ページング/キャッシュメモリーの使用効率が高まり、(3) 分岐予測度が向上する、という効果が得られます。コードのレイアウトを最適化することでコードサイズが縮小し、分岐予測ミスが少なくなるため、命令キャッシュのスラッシングが減り、アプリケーションのパフォーマンスが向上します。

PGO は、図 3 で示すように、3 段階のプロセスです。1) インストルメンテーションを追加してアプリケーションをコンパイルします。2) アプリケーションを実行しモニターして、プロファイルを生成します。3) 最初の実行中に収集したデータを基に最適化を行って再コンパイルします。プロファイルに基づく最適化によって影響を受けるコードサイズについて次に説明します。

基本ブロックと関数の順序 - 命令キャッシュの局所性が有効に機能するように、頻繁に実行されるブロックと関数を一緒に配置します。
インライン展開の判断 - 頻繁に実行される関数をインライン展開します。最もパフォーマンスに影響する領域のコードサイズが増加します。
ベクトル化の判断 - 高いトリップカウントと頻繁に実行されるループをベクトル化します。コードサイズは増加しますが、パフォーマンスの向上によって緩和されます。
図 2.  プロファイルに基づく最適化
図 3. プロファイルに基づく最適化


インテル® デバッガーによる最適化されたコードのデバッギング
最適化されたコード (特定のハードウェア・アーキテクチャー向けに最適化されるように大幅に変換されたデバッギング・コードなど) のデバッグを行うことができます。インテル® コンパイラーは、最適化コードのデバッグの際、標準に準拠したデバッグ情報を生成するため、インテル® コンパイラーでサポートされているすべてのデバッガーで情報を利用できます。インテル® デバッガーは、マルチスレッド・アプリケーションのデバッグを有効にすることにより、マルチコア・アプリケーションをサポートします。インテル® デバッガーには次のような機能があります。
All-Stop/All-Go (全停止/全実行) 実行モデル (例: 1 つのスレッドが停止すると、すべてのスレッドも停止する。また、1 つのスレッドが再開すると、すべてのスレッドも再開する)。
作成されたすべてのスレッドをリスト
スレッド間のフォーカスの切り替え
詳細なスレッドの状態を検証
ブレークポイントの設定 (すべての stop、trace、watch のバリエーションを含む) と全スレッドまたはスレッドサブセットに対するスタックのバックトレースの表示
ビルドイン GUI では、スレッドの作成時に有効になる [Thread (スレッド)] パネル ([Current Source (現在のソース)] ペイン) が提供されており、スレッドのフォーカスと詳細の表示方法を選択可能
近年強化された GNU プロジェクト・デバッガー (GDB デバッガー) を並列アプリケーションに使用することもできます。詳細は、インテル® デバッガー・テクニカル・ホワイトペーパー (英語) (PDF 210KB) を参照してください。


互換性と柔軟性

インテル® C++ コンパイラー 11.1 Linux 版は、幅広く規格に準拠し、Linux ディストリビューションや GCC、関連ツールチェーン、3.2.3 から 4.11 までのバージョンと互換性があります。詳細は、「動作環境」を参照してください。また、デュアルコア インテル® Itanium® プロセッサーを含む Itanium® プロセッサーもサポートしています。バイナリーも幅広く GCC バイナリーと互換性があり、「ミックス・アンド・マッチ (うまく組み合わせた)」の相互運用性機能をサポートします。

インテル® C++ コンパイラーは、次の言語規格に適合しています。

C 言語コンパイル用 ANSI/ISO 規格 (ISO/IEC 9899:1990)
C++ 言語用 ANSI/ISO 規格 (ISO/IEC 14882:1998)
OpenMP 仕様バージョン 3.0

さまざまなアプリケーションのパフォーマンスを向上
インテル® C++ コンパイラー Linux 版は、優れたパフォーマンス、ユーザビリティー、およびビジネス上の利点をさまざまなソフトウェア・マーケットにもたらします。

次世代のデータを多用するアプリケーション開発者の利点 次世代のデータを多用するアプリケーション開発者は、インテル® コンパイラーを使用してレイテンシーや処理時間を減らすことで、大幅にパフォーマンスを向上させることができます。また、パフォーマンスに大きな影響を与えることなく、機能を追加することも可能です。
デジタルホーム、ゲーム、およびエンターテイメント・アプリケーション デジタルホーム、ゲーム、およびエンターテイメント・アプリケーションは、マルチコア・プラットフォームでの並列処理に優れているインテル® C++ コンパイラーを利用することで、ユーザーの操作を中断することなく、バックグラウンドでダウンロード、セキュリティー、その他のタスクを処理できます。
携帯機器向けソフトウェア 携帯機器向けソフトウェアは、インテル® Core™ Duo プロセッサー・ベースのモバイル・マルチコア・プラットフォームで、消費電力を抑えてバッテリーの寿命を延ばしながらパフォーマンスを引き出すことができます。

バージョン 11.1 動作環境

プロセッサー用語
インテル® コンパイラーは、一般的なプロセッサーとオペレーティング・システムを組み合わせた 3 つのプラットフォームをサポートしています。このセクションでは、本ドキュメント、インストール手順、およびサポートサイトでプラットフォームの記述に使用されている用語について説明します。

IA-32 アーキテクチャー: 32 ビットのオペレーティング・システム ("Linux x86") を実行している、インテル® Pentium® II プロセッサーと互換性のある 32 ビット・プロセッサー (インテル® Pentium® 4 プロセッサー、インテル® Xeon® プロセッサーなど)、または同じ命令セットをサポートしている他社製のプロセッサーがベースのシステムを指します。

インテル® 64 アーキテクチャー: 64 ビット・アーキテクチャーに対応するように拡張された IA-32 アーキテクチャー・プロセッサー (インテル® Core™2 プロセッサー・ファミリーなど) をベースとし、64 ビット・オペレーティング・システム ("Linux x86_64") を実行するシステムを指します。32 ビットの Linux オペレーティング・システムを実行しているシステムは、IA-32 アーキテクチャーとみなされます。"Linux x86_64" オペレーティング・システムを実行する AMD* プロセッサー・ベースのシステムも、インテル® 64 対応アプリケーション用インテル® コンパイラーでサポートされています。

IA-64 アーキテクチャー: 64 ビット・オペレーティング・システムを実行している、インテル® Itanium® プロセッサー・ベースのシステム。

ネイティブおよびクロスプラットフォーム開発
「ネイティブ」とは、アプリケーションを実行するプラットフォームと同じプラットフォームでアプリケーションをビルドする (例えば、IA-32 システムで実行するアプリケーションを IA-32 システムでビルドする) ことを指します。「クロスプラットフォーム」または「クロスコンパイル」とは、アプリケーションを実行するプラットフォームとは異なる種類のプラットフォームでアプリケーションをビルドする (例えば、IA-64 アーキテクチャー・システムで実行するアプリケーションを IA-32 アーキテクチャーでビルドする) ことを指します。すべての組み合わせのクロスプラットフォーム開発がサポートされているわけではありません。また、組み合わせによっては、オプションのツールとライブラリーをインストールする必要があります。

サポートされているホスト (アプリケーションをビルドするシステム) とターゲット (アプリケーションを実行するシステム) の組み合わせを次に示します。

ホスト: IA-32 システム、サポートターゲット: IA-32
ホスト: インテル® 64 システム、 サポートターゲット: IA-32 とインテル® 64
ホスト: IA-64 システム、サポートターゲット: IA-64
ホストと異なるターゲットの開発を行う場合、Linux ディストリビューションから別のライブラリー・コンポーネントのインストールが必要になることがあります。

IA-32 対応アプリケーション開発に必要な環境
インテル® ストリーミング SIMD 拡張命令 2 (インテル® SSE2) 対応の IA-32 またはインテル® 64 アーキテクチャー・プロセッサーをベースとするコンピューター (インテル® Pentium® 4 プロセッサー以降、または互換性のあるインテル以外のプロセッサー)
RAM 1GB (2GB 推奨)
3GB のディスク空き容量 (すべての機能をインストールする場合)
次の Linux ディストリビューションのいずれか (本リストは、インテル社により動作確認が行われたディストリビューションのリストです。その他のディストリビューションでも動作する可能性はありますが、推奨しません。ご質問は、インテル® テクニカルサポートまでお問い合わせください。)
- Asianux 3.0
- Debian 4.0
- Fedora 10
- Red Hat Enterprise Linux 3、4、5
- SUSE LINUX Enterprise Server 9、10 、11
- TurboLinux 11
- Ubuntu 9.04
GCC、g++ および関連ツールを含む、Linux 開発ツール・コンポーネント
binutils 2.17.50 以降
libstdc++.so.5 を提供する Linux コンポーネント互換の libstdc++
インテル® 64 アーキテクチャー・システムで開発を行う場合、一部の Linux ディストリビューションでは、次のいずれかまたは複数の Linux コンポーネントを追加でインストールしなければならない場合があります: ia32-libs、lib32gcc1、lib32stdc++6、libc6-dev-i386、gcc-multilib
インテル® 64 対応アプリケーションの開発に必要な環境
インテル® 64 アーキテクチャー・プロセッサーをベースとするコンピューター (インテル® Pentium® 4 プロセッサー以降、または互換性のあるインテル以外のプロセッサー)
RAM 1GB (2GB 推奨)
3GB のディスク空き容量 (すべての機能をインストールする場合)
仮想メモリーのページングファイル用に 100MB のディスク空き容量。インストールされている Linux のディストリビューションで推奨される最小容量以上の仮想メモリーを使用していることを確認してください。
次の Linux ディストリビューションのいずれか (本リストは、インテル社により動作確認が行われたディストリビューションのリストです。その他のディストリビューションでも動作する可能性はありますが、推奨しません。ご質問は、インテル® テクニカルサポートまでお問い合わせください。)
- Asianux 3.0
- Debian 4.0
- Fedora 10
- Red Hat Enterprise Linux 3、4、5
- SGI ProPack 5
- SUSE LINUX Enterprise Server 9、10 、11
- TurboLinux 11
- Ubuntu 9.04
GCC、g++ および関連ツールを含む、Linux 開発ツール・コンポーネント
lbinutils 2.17.50 以降
libstdc++.so.5 を提供する Linux コンポーネント互換の libstdc++
32 ビット・ライブラリーを含む Linux コンポーネント (ia32-libs とも呼ばれる)
IA-64 対応アプリケーション開発に必要な環境
インテル® Itanium® プロセッサー・ベースのシステム
RAM 1GB (2GB 推奨)
3GB のディスク空き容量 (すべての機能をインストールする場合)
次の Linux ディストリビューションのいずれか (本リストは、インテル社により動作確認が行われたディストリビューションのリストです。その他のディストリビューションでも動作する可能性はありますが、推奨しません。ご質問は、インテル® テクニカルサポートまでお問い合わせください。)
- Asianux 3.0
- Debian 4.0
- Red Hat Enterprise Linux 3、4、5
- SUSE LINUX Enterprise Server 9、10 、11
- TurboLinux 11
- Ubuntu 9.04
GCC、g++ および関連ツールを含む、Linux 開発ツール・コンポーネント
binutils 2.17.50 以降
libstdc++.so.5 を提供する Linux コンポーネント互換の libstdc++
インテル® デバッガーのグラフィカル・ユーザー・インターフェイスを使用するためのその他の要件
IA-32 アーキテクチャー・システムまたはインテル® 64 アーキテクチャー・システム
Java ランタイム環境 5.0 (1.5) または 6.0 (1.6)
Eclipse 統合を使用するためのその他の要件
IA-32 アーキテクチャー・システムまたはインテル® 64 アーキテクチャー・システム
Eclipse 3.4.x または 3.3.x
Eclipse C/C++ Development Tools (CDT) 5.0.0 または 4.0.2
Java ランタイム環境 5.0 (1.5.0)
インテル® クラスター OpenMP (オプション機能) を使用するためのその他の要件
必要な最小ハードウェア構成 (ノード単位):
- インテル® 64 アーキテクチャー・システムまたは IA-64 アーキテクチャー・システム
推奨ハードウェア (ノード単位):
- 2GB RAM
- 10GB のディスク空き容量
オペレーティング・システム:
- Red Hat Enterprise Linux 3.0、4.0
- SUSE Linux Enterprise Server 9.0、10.0
POSIX スレッド: NPTL
Infiniband サポートの場合
Open Fabrics Enterprise Distribution (OFED) 1.0 以降
OFED ソフトウェアは、https://svn.openfabrics.org/svn/openib/gen2/branches (英語) からダウンロードできます。
推奨ソフトウェア
インテル® トレース・アナライザー/コレクター
インテル® スレッド・プロファイラー
インテル® スレッド・チェッカー

クラスター要件

サポートされている通信ファブリック (Ethernet、Gigabit Ethernet、Infiniband、または TCP/IP をサポートする任意のファブリック) のいずれか。

クラスター OpenMP プログラムの実行に関わるすべてのノードは、同じオペレーティング・システムと同じカーネルバージョンを実行している必要があります。また、実装されているファイルシステムやシステムパスに関してできる限り同一なものにしなければなりません。

ディスクには十分なスワップ領域が必要です。Linux プログラムで必要な通常のスワップ領域に加え、クラスター OpenMP は、共有可能な外部記憶装置用に個別に割り当てたディスク空き容量が必要です。共有可能な外部記憶装置はデフォルトで /tmp に割り当てられ、プログラムに割り当てられている共有可能なページの 2 倍の空き容量が必要です。kmp_cluster.ini ファイルにある --backing-store オプションを使用して、/tmp 以外のディレクトリーに共有外部記憶装置を割り当ててください。


注:
1. インテル® コンパイラーは、 さまざまな Linux ディストリビューションと GCC バージョンで動作確認されています。一部の Linux ディストリビューションには、動作確認に使用したヘッダーファイルとは異なるバージョンのものが含まれていて、問題を引き起こすことがあります。使用する glibc のバージョンは、GCC のバージョンと同じでなければなりません。最良の結果を得るため、上記のディストリビューションで提供されている GCC バージョンのみを使用してください。
2. 非常に大きなソースファイル (数千行以上) を -O3、-ipo および -openmp などの高度な最適化オプションを使用してコンパイルする場合は、相当な量の RAM が必要になります。
3. 上記のリストにはすべてのプロセッサー・モデル名は含まれていません。リストされているプロセッサーと同じ命令セットを正しくサポートしているプロセッサー・モデルでも動作します。特定のプロセッサー・モデルについては、テクニカルサポートにお問い合わせください。
4. 一部の最適化オプションには、アプリケーションを実行するプロセッサーの種類に関する制限があります。詳細は、オプションの説明を参照してください。
5. インテル® C++ コンパイラーの将来のメジャーリリースでは、Red Hat Enterprise Linux 3 と SUSE LINUX Enterprise Server 9 はサポートされなくなる予定です。これらのオペレーティング・システムを使用している場合は、インテルでは新しいバージョンへの移行を推奨しています。

新着ドキュメント

バージョン 11.1

バージョン 11.0

バージョン10.1

その他ドキュメント

FAQ

リリース情報:

バージョン 11.1 日本語版 好評発売中!!
インテル C++ コンパイラー・プロフェッショナル・エディション Linux 版には、次の 4 製品がバンドルされています。

バンドル製品同梱表はこちら / アップグレード方法はこちら

※この度リリースされたインテル® コンパイラー 11.1 日本語版には、日本語版および英語版が含まれています。
製品の言語は、インストールされるシステムの言語設定によって選択されます。

インテル® デバッガー日本語ドキュメント配布開始!!

お知らせ:

  • インテル社の方針により、コンパイラー・スタンダード・エディションは、2008年 10月 31日を以って終息となりました。2008年 11月 1日以降はプロフェッショナル・エディションをお買い求めください。 詳細および有効なライセンスでのアップグレードについて

    バージョン 11.0 フローティング・ライセンスをご利用のお客様:
    インテル 64 対応インテル コンパイラー 11.0 Linux 版において、フローティング ライセンス認証に不具合がありました。この問題は最新バージョン (ビルド# 11.0.074) で修正されています。最新版のダウンロード方法はこちらをご覧ください。

  • 11.0 リリースノート一部誤りについて
    製品に含まれております日本語リリースノートの記載に一部誤りがございます。該当箇所は以下の通りです。
    < 誤 >
    1.2.3 最小動作環境
    インテルR PentiumR III プロセッサー 1GHz 以上の IA-32 プロセッサーを搭載したコンピューター、インテルR 64 対応プロセッサー、 AMD Athlon プロセッサー、または Opteron プロセッサーを搭載したコンピューター、 IA-64 プロセッサー ( インテルR ItaniumR プロセッサー ) を搭載したコンピューターのいずれか
    < 正>
    1.2.3 最小動作環境
    インテルR ストリーミング SIMD 拡張命令 2 ( インテルR SSE2) 対応の IA-32 アーキテクチャー・プロセッサーをベースとするコンピューター、またはインテルR 64 アーキテクチャー・プロセッサーや 64 ビット AMD Athlon プロセッサーまたは Opteron プロセッサーをベースとするコンピューター、または IA-64 アーキテクチャー ( インテルR ItaniumR ) プロセッサーをベースとするコンピューター

    修正済みのリリースノートは、本ページよりダウンロードいただけます。
    本問題は Update 1 (11.0.066) にて解決されております。最新版のダウンロード方法はこちらをご覧ください。
    この度は多大なご迷惑をおかけ致しましたことを深くお詫び申し上げます。

お役立ち情報:

並列化にはどのようなテクニックがありますか?
並列化の疑問にお答えします。
並列化情報サイト、並列化 FAQ 公開開始!

 
. . . . . .