XLsoft Corporation/エクセルソフト株式会社
Intel, インテル, 処理速度, パフォーマンス, 高速化, 最適化, コンパイラー, Compiler, 自動並列化, ソフトウェア, アプリケーション, Windows, C言語, C++, Intel C++ Compiler, C++ Compiler
 Intel Compiler インテル コンパイラー  Intel, インテル, 処理速度, パフォーマンス, 高速化, 最適化, コンパイラー, Compiler, 自動並列化, ソフトウェア, アプリケーション, Windows, C言語, C++, Intel C++ Compiler, C++ Compiler
コンパイラー
 Intel Performance Analyzer インテル パフォーマンス アナライザー  Intel, インテル, 処理速度, パフォーマンス, 高速化, 最適化, コンパイラー, Compiler, 自動並列化, ソフトウェア, アプリケーション, Windows, C言語, C++, Intel C++ Compiler, C++ Compiler
VTune
アナライザー
 Intel Performance Library インテル パフォーマンス ライブラリー  Intel, インテル, 処理速度, パフォーマンス, 高速化, 最適化, コンパイラー, Compiler, 自動並列化, ソフトウェア, アプリケーション, Windows, C言語, C++, Intel C++ Compiler, C++ Compiler
パフォーマンス
ライブラリー
 Intel Threading Tool インテル スレッド化ツール  Intel, インテル, 処理速度, パフォーマンス, 高速化, 最適化, コンパイラー, Compiler, 自動並列化, ソフトウェア, アプリケーション, Windows, C言語, C++, Intel C++ Compiler, C++ Compiler
スレッド化
ツール
 Intel Cluster Tools インテル クラスタ ツール  Intel, インテル, 処理速度, パフォーマンス, 高速化, 最適化, コンパイラー, Compiler, 自動並列化, ソフトウェア, アプリケーション, Windows, C言語, C++, Intel C++ Compiler, C++ Compiler
クラスタ ツール
 Intel Software College インテル・ソフトウェア・カレッジ  Intel, インテル, 処理速度, パフォーマンス, 高速化, 最適化, コンパイラー, Compiler, 自動並列化, ソフトウェア, アプリケーション, Windows, C言語, C++, Intel C++ Compiler, C++ Compiler
トレーニング
 Intel Software College インテル・ソフトウェア・カレッジ  Intel, インテル, 処理速度, 分析, 解析, パフォーマンス, 高速化, 最適化, コンパイラー, Compiler, 自動並列化, 画像処理, ソフトウェア, アプリケーション, Windows, Linux, Windows CE, .NET, Unix, C言語, C++, Fortran, フォートラン, VTune Performance Analyzer, Intel Threading Tool, Intel Thread Checker, Intel Thread Profiler, Intel Math Kernel Library, Intel Cluster Math Kernel Library, Intel Integrated Performance Primitives, Intel Graphics Performance Primitives, Intel Trace Analyzer, Intel Trace Collector, Intel Software College
XML 製品

Intel, インテル, 処理速度, パフォーマンス, 高速化, 最適化, コンパイラー, Compiler, 自動並列化, ソフトウェア, アプリケーション, Windows, C言語, C++, Intel C++ Compiler, C++ Compiler Intel, インテル, 処理速度, パフォーマンス, 高速化, 最適化, コンパイラー, Compiler, 自動並列化, ソフトウェア, アプリケーション, Windows, C言語, C++, Intel C++ Compiler, C++ Compiler Intel, インテル, 処理速度, パフォーマンス, 高速化, 最適化, コンパイラー, Compiler, 自動並列化, ソフトウェア, アプリケーション, Windows, C言語, C++, Intel C++ Compiler, C++ Compiler
Intel, インテル, 処理速度, パフォーマンス, 高速化, 最適化, コンパイラー, Compiler, 自動並列化, ソフトウェア, アプリケーション, Windows, C言語, C++, Intel C++ Compiler, C++ Compiler
Intel, インテル, 処理速度, パフォーマンス, 高速化, 最適化, コンパイラー, Compiler, 自動並列化, ソフトウェア, アプリケーション, Windows, C言語, C++, Intel C++ Compiler, C++ Compiler Intel, インテル, 処理速度, パフォーマンス, 高速化, 最適化, コンパイラー, Compiler, 自動並列化, ソフトウェア, アプリケーション, Windows, C言語, C++, Intel C++ Compiler, C++ Compiler
インテル ホーム インテル ホーム
Intel, インテル, 処理速度, パフォーマンス, 高速化, 最適化, コンパイラー, Compiler, 自動並列化, ソフトウェア, アプリケーション, Windows, C言語, C++, Intel C++ Compiler, C++ Compiler
Intel, インテル, 処理速度, パフォーマンス, 高速化, 最適化, コンパイラー, Compiler, 自動並列化, ソフトウェア, アプリケーション, Windows, C言語, C++, Intel C++ Compiler, C++ Compiler
製品情報 製品情報
Intel, インテル, 処理速度, パフォーマンス, 高速化, 最適化, コンパイラー, Compiler, 自動並列化, ソフトウェア, アプリケーション, Windows, C言語, C++, Intel C++ Compiler, C++ Compiler 概要
Intel, インテル, 処理速度, パフォーマンス, 高速化, 最適化, コンパイラー, Compiler, 自動並列化, ソフトウェア, アプリケーション, Windows, C言語, C++, Intel C++ Compiler, C++ Compiler
Intel, インテル, 処理速度, パフォーマンス, 高速化, 最適化, コンパイラー, Compiler, 自動並列化, ソフトウェア, アプリケーション, Windows, C言語, C++, Intel C++ Compiler, C++ Compiler
新機能
Intel, インテル, 処理速度, パフォーマンス, 高速化, 最適化, コンパイラー, Compiler, 自動並列化, ソフトウェア, アプリケーション, Windows, C言語, C++, Intel C++ Compiler, C++ Compiler
Intel, インテル, 処理速度, パフォーマンス, 高速化, 最適化, コンパイラー, Compiler, 自動並列化, ソフトウェア, アプリケーション, Windows, C言語, C++, Intel C++ Compiler, C++ Compiler
機能詳細
Intel, インテル, 処理速度, パフォーマンス, 高速化, 最適化, コンパイラー, Compiler, 自動並列化, ソフトウェア, アプリケーション, Windows, C言語, C++, Intel C++ Compiler, C++ Compiler
Intel, インテル, 処理速度, パフォーマンス, 高速化, 最適化, コンパイラー, Compiler, 自動並列化, ソフトウェア, アプリケーション, Windows, C言語, C++, Intel C++ Compiler, C++ Compiler
動作環境
Intel, インテル, 処理速度, パフォーマンス, 高速化, 最適化, コンパイラー, Compiler, 自動並列化, ソフトウェア, アプリケーション, Windows, C言語, C++, Intel C++ Compiler, C++ Compiler
インテル 購入 購入情報
Intel, インテル, 処理速度, パフォーマンス, 高速化, 最適化, コンパイラー, Compiler, 自動並列化, ソフトウェア, アプリケーション, Windows, C言語, C++, Intel C++ Compiler, C++ Compiler
技術情報 技術情報
Intel, インテル, 処理速度, パフォーマンス, 高速化, 最適化, コンパイラー, Compiler, 自動並列化, ソフトウェア, アプリケーション, Windows, C言語, C++, Intel C++ Compiler, C++ Compiler
インテル ダウンロード ダウンロード
Intel, インテル, 処理速度, パフォーマンス, 高速化, 最適化, コンパイラー, Compiler, 自動並列化, ソフトウェア, アプリケーション, Windows, C言語, C++, Intel C++ Compiler, C++ Compiler
インテル サポート サポート
Intel, インテル, 処理速度, パフォーマンス, 高速化, 最適化, コンパイラー, Compiler, 自動並列化, ソフトウェア, アプリケーション, Windows, C言語, C++, Intel C++ Compiler, C++ Compiler
インテル 登録 製品の登録
Intel, インテル, 処理速度, パフォーマンス, 高速化, 最適化, コンパイラー, Compiler, 自動並列化, ソフトウェア, アプリケーション, Windows, C言語, C++, Intel C++ Compiler, C++ Compiler Intel, インテル, 処理速度, パフォーマンス, 高速化, 最適化, コンパイラー, Compiler, 自動並列化, ソフトウェア, アプリケーション, Windows, C言語, C++, Intel C++ Compiler, C++ Compiler
Intel, インテル, 処理速度, パフォーマンス, 高速化, 最適化, コンパイラー, Compiler, 自動並列化, ソフトウェア, アプリケーション, Windows, C言語, C++, Intel C++ Compiler, C++ Compiler Intel, インテル, 処理速度, パフォーマンス, 高速化, 最適化, コンパイラー, Compiler, 自動並列化, ソフトウェア, アプリケーション, Windows, C言語, C++, Intel C++ Compiler, C++ Compiler Intel, インテル, 処理速度, パフォーマンス, 高速化, 最適化, コンパイラー, Compiler, 自動並列化, ソフトウェア, アプリケーション, Windows, C言語, C++, Intel C++ Compiler, C++ Compiler
Intel, インテル, 処理速度, パフォーマンス, 高速化, 最適化, コンパイラー, Compiler, 自動並列化, ソフトウェア, アプリケーション, Windows, C言語, C++, Intel C++ Compiler, C++ Compiler

Intel, インテル, 処理速度, パフォーマンス, 高速化, 最適化, コンパイラー, Compiler, 自動並列化, ソフトウェア, アプリケーション, Windows, C言語, C++, Intel C++ Compiler, C++ Compiler
Intel, インテル, 処理速度, パフォーマンス, 高速化, 最適化, コンパイラー, Compiler, 自動並列化, ソフトウェア, アプリケーション, Windows, C言語, C++, Intel C++ Compiler, C++ Compiler
インテル C++ コンパイラー Windows 版 (Intel C++ Compiler  for Windows)


機能と利点
パフォーマンス

インテル® C++ コンパイラー・プロフェッショナル・エディションではパフォーマンスを最大限に引き出すことが可能です。組み込みの最適化テクノロジーとマルチスレッド対応で最新のマルチコア・プロセッサー機能を活用したコードの作成を支援します。

インテル® C++ コンパイラー Windows  版プロフェッショナル・エディションで並列化を表現してください。

高度な最適化機能
インテル® C++ コンパイラー Windows 版を使用してソフトウェアをコンパイルすると、以下のような高度な最適化機能を利用できます。詳細は、リンクをクリックしてください。
マルチスレッド・アプリケーションのサポート - OpenMP および自動並列化により、マルチスレッド・アプリケーションを効率的に開発できます。
自動ベクトル化 - 最新のインテル・プロセッサーのストリーミング SIMD 拡張命令 (SSE) セット・アーキテクチャー (SSE、SSE2、SSE3、SSSE3、SSE4) を活用してコードを並列化します。
ハイパフォーマンス並列最適化機構 (HPO) - ループの構造を変更して最適化し、自動ベクトル化、OpenMP または自動並列化により、キャッシュアクセスとメモリーアクセス、SIMD 命令セット、マルチコアなどのプロセッサー機能を最大限に活用できるようにします。バージョン 10 におけるこの革新的な機能は、ベクトル化、並列化、ループ変換をシングルパスにまとめ、より高速かつ効率的に、そしてより安定性に優れた離散フェーズを実現します。
プロシージャー間の最適化 (IPO) - ループ内で呼び出しを行うプログラムなど、小・中規模の関数を大量かつ頻繁に使用するプログラムのパフォーマンスを大幅に向上させます。この最適化の解析機能では、コンパイラーのフロントエンドによる解析に厳密に従うコンパイラーではうまく検出できない、初期化されていない変数や OpenMP API 問題などの脆弱性やコーディング・エラーについてのフィードバックも提供します。
プロファイルに基づく最適化 (PGO) - コードのレイアウトを最適化してコードサイズを縮小します。分岐予測ミスが少なくなるため、命令キャッシュのスラッシングが減り、アプリケーションのパフォーマンスが向上します。
インテル® デバッガーによる最適化されたコードのデバッギング - インテル® アーキテクチャー用に最適化されたコードのデバッグプロセスを効率化します。


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

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

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

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

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++ コンパイラー Windows 版は、OpenMP の並列化をサポートしており、幅広く規格に準拠しています。

Microsoft Visual Studio 2005、Visual Studio .NET 2003、および Visual Studio 98 に統合可能で、32 ビットおよび 64 ビットのマルチコア・プロセッサーをサポートしています。インテル® C++ コンパイラーは、次の言語規格に適合しています。

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

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

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

Top へ