概要 - xlsoft corporationjp.xlsoft.com/documents/intel/wp/parallelstudioxe2013_codebook.pdf ·...

10

Upload: others

Post on 20-May-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

概要

概要

設計

ビルド

検証

チューニング

10 の新機能

技術仕様

まとめ

インテル® ソフトウェア製品のパフォーマンスおよび最適化に関する注意事項については、http://software.intel.com/en-us/articles/optimization-notice/#opt-jp を参照してください。

はじめに多くのプロセッサーではその進化に伴い、速度、信頼性、および安全性を向上する新しい機能が備わるようになりました。インテル® Parallel Studio XE は、新しいプロセッサーの機能を活用して、より高速でスケーラブル、そして信頼性の高いアプリケーションを迅速に開発できるように支援します。このコードブックは、並列アプリケーションの設計、ビルド、検証、チューニング手法と関連リソースを紹介します。

高速設計、ビルド、チューニング段階でアプリケーションのパフォーマンスを向上します。新しいスレッド化アドバイザーは、コードを変更することなく並列処理を実装するのに最適な個所を示します。最適化されたコンパイラー、並列プログラミング・モデル、ライブラリーを利用して、より高速なアプリケーションを簡単にビルドすることができます。さらに、並列プロファイラーを使用することで、アプリケーションのチューニングに必要な重要情報が得られます。

スケーラブルスケーラビリティーの優れたアプリケーションは、より多くのコアとより幅の広いベクトルでパフォーマンスが向上します。インテルは、設計、ビルド、チューニングを支援する各種ツールを提供しています。インテルのコンパイラー、並列プログラミング・モデル、ライブラリーを使用してコードをビルドすることで、スケーラビリティーの優れた並列処理を簡単に実装することができます。インテルのライブラリーは、最適化された数値演算、データ、およびメディア処理関数を提供します。コードのチューニングでは、ロックの過度な使用や平行性の問題といったスケーラビリティーの妨げとなる問題を発見します。

信頼性メモリーエラーおよびスレッドエラーは、プログラムがハングアップしたり、誤った結果やセキュリティーの脆弱性を引き起こす原因となります。インテル® Parallel Studio XE を使用することで、コードを記述する過程で効率良くメモリーエラーとスレッドエラーを見つけ、修正することができます。問題が見つかった場合は、コードを変更し、問題が修正されたことを確認してから次に進めます。

「インテル® Parallel Studio XE 2013

は、パフォーマンス、並列化、デバッグに関連した重要な新機能を提供します。是非お試しください。いくつかの機能はすぐに皆様のお役に立つでしょう。」

James Reindersインテル コーポレーション チーフ・エバンジェリスト

コードブック :インテル® Parallel Studio XE 2013

プライバシー l 利用規約 詳細 2

設計

概要

設計

ビルド

検証

チューニング

10 の新機能

技術仕様

まとめ

インテル®Advisor XE

設計

ビルド

チューニング

検証

インテル® ソフトウェア製品のパフォーマンスおよび最適化に関する注意事項については、http://software.intel.com/en-us/articles/optimization-notice/#opt-jp を参照してください。

並列処理を行うコードの設計並列設計における課題は、コードを変更し、それによりパフォーマンスが向上するかどうかをテストしなければならない点です。インテル® Parallel Studio XE は、革新的なスレッド化支援機能により、設計と実装を切り離します。5 つのステップを使用して、実装する前に選択肢を検討することができます。

ステップ 1: 調査 - 並列領域を探すアプリケーションを計測して、並列かつ高速に実行できる領域を探します。パフォーマンスの向上が得られない限り、労力を費やす意味がありません。

ステップ 2: ソースのアノテーションソースコードにアノテーションを追加して、並列化可能な領域を大まかに把握します。ソースコードに簡単にカットアンドペーストできるサンプルコードが提供されています。

ステップ 3: パフォーマンスの確認 - 選択肢を比較する想定どおり高速になりましたか ? どのようにスケーリングしますか ? このステップでは、推奨される変更内容を確認し、パフォーマンスの向上を予測します。

ステップ 4: 正当性の確認実装前に、デッドロックや競合につながるデータ共有問題を見つけて修正します。エラーのリストが提供され、クリックすることで実際のソースの場所に移動できます。

ステップ 5: 実装並列プログラミング・モデルの選択要件に合った並列プログラミング・モデルを使用して並列処理を実装します。すべてのモデルは、より少ないコードで、信頼性の高いスケーラブルな並列処理を実現します。インテル® Cilk™ Plus は、スレッド化およびベクトル化を行うための簡単な方法です。インテル® スレッディング・ビルディング・ブロック (インテル® TBB) は、広範囲で強力な抽象化のセットを提供します。OpenMP* は既存のコードと互換性があり、Microsoft TPL* は C# 向けに設計されています。

準備インテル® Advisor XE

入門ガイド

インテル® Advisor XE 評価ガイド

製品ページ

製品紹介

コードブック :インテル® Parallel Studio XE 2013

プライバシー l 利用規約 詳細 3

ビルド

概要

設計

ビルド

検証

チューニング

10 の新機能

技術仕様

まとめ

インテル®Composer

XE

設計

ビルド

チューニング

検証

インテル® ソフトウェア製品のパフォーマンスおよび最適化に関する注意事項については、http://software.intel.com/en-us/articles/optimization-notice/#opt-jp を参照してください。

より高速でスケーラビリティーの優れたコードのビルド アプリケーションのパフォーマンスを最大限に引き出したいと考えるパフォーマンス指向の開発者の方は、インテルのコンパイラー、ライブラリー、並列プログラミング・モデルを是非お試しください。評価ガイドをダウンロードして、これらのツールを使用することで、いかに簡単にアプリケーションのパフォーマンスとスケーラビリティーを向上できるか評価してみてください。

以下の C/C++ コードおよび Fortran コードは、単純なコード変更により、パフォーマンスとスケーラビリティーを大幅に向上できることを示しています。

Fortranインテル® マス・カーネル・ライブラリー (インテル® MKL) を使用した Fortran の行列乗算

Co-Array 機能を使用した Fortran の行列処理

上記の例は、Co-Array とインテル® [Visual] Fortran Composer XE Linux* 版および Windows* 版でサポートされている Fortran 2008 の並列プログラミング機能を使用したヤコビ積分のプログラムからの抜粋です。大きな問題の配列は、プログラムの別のインスタンスで処理されるサブグリッド (「イメージ」) に分割されています。各サブグリッドは、隣接するイメージのサブグリッドからコピーされた「ハローセル」で囲まれています ̶ 「ハローセル」は、後で各イメージで割り当てられた問題の部分の値を計算するのに使用されます。

C/C++インテル® Cilk™ Plus を使用した C の関数の並列呼び出し

インテル® TBB を使用した C の関数の並列呼び出し

cilk_for (int i=0; i<n; ++i) { Foo(a[i]);}

parallel_for (0, n, [=](int i) { Foo(a[i]); });

call DGEMM(transa,transb,m,n,k,alpha,a,lda,b,ldb,beta,c,ldc)

real, ALLOCATABLE :: my_subgrid(:,:)[:,:]…SYNC ALL !... 最後の反復のグローバルな完了を待機my_subgrid( 0, 1:my_M) = my_subgrid( my_N, 1:my_M)[my_north_P,me_Q] ! 北側の隣接my_subgrid( my_N+1, 1:my_M) = my_subgrid( 1, 1:my_M)[my_south_P,me_Q] ! 南側の隣接my_subgrid( 1:my_N, my_M+1) = my_subgrid( 1:my_N, 1 )[me_P, my_east_Q] ! 東側の隣接my_subgrid( 1:my_N, 0 ) = my_subgrid( 1:my_N, my_M )[me_P, my_west_Q] ! 西側の隣接

インテル® Composer XE

C++ 入門ガイドFortran 入門ガイド

製品ページ製品紹介

評価ガイド

大幅なパフォーマンス向上インテル® TBB を使用したスレッド化インテル® Cilk™ Plus の使用

準備

コードブック :インテル® Parallel Studio XE 2013

プライバシー l 利用規約 詳細 4

検証

概要

設計

ビルド

検証

チューニング

10 の新機能

技術仕様

まとめ

InspectorXE

設計

ビルド

チューニング

検証

インテル®

インテル® ソフトウェア製品のパフォーマンスおよび最適化に関する注意事項については、http://software.intel.com/en-us/articles/optimization-notice/#opt-jp を参照してください。

メモリーエラーおよびスレッドエラーが排除されたことを確認シリアルコードでも、並列コードでも、メモリーエラーとスレッドエラーを発見するのは困難です。インテル® Parallel

Studio XE には、Windows* および Linux* 上で C、C++、C#、F#、Fortran アプリケーションのエラーをピンポイントで特定できる優れたツールが含まれています。

実行コードパスの潜在的なエラーに加えて、断続的なエラーや非決定的なエラーも、エラーが発生するシナリオを実行しなくても見つけられます。

パフォーマンスの影響を受けるコードは C++ で、GUI

は C# で記述されていますか ? Fortran で記述された既存コードがありますか ? ソースなしでライブラリーを使用していますか ? 問題ありません。動的インストルメンテーションにより、ソースのないサードパーティーのライブラリーを含むすべてのコードを検証できます。

不可解なメモリー使用量の増加を解決アプリケーションで不可解なメモリー使用量の増加が見られますか ? その場合、解放されていないメモリーによりヒープが増加している可能性があります。「ヒープ拡張解析」と呼ばれる新機能は、ヒープの増加につながる疑わしい動作を特定します。ボタンをクリックするか、API を使用して、測定間隔において解放されていないメモリー割り当てのリストを生成することができます。

インテル® Inspector XE

Windows* 入門ガイドLinux* 入門ガイド

製品ページ製品紹介

評価ガイド

メモリーエラーの検出

スレッドエラーの検出リソースリーク

準備

コードブック :インテル® Parallel Studio XE 2013

プライバシー l 利用規約 詳細 5

チューニング

概要

設計

ビルド

検証

チューニング

10 の新機能

技術仕様

まとめ

VTune™Amplifier

XE

設計

ビルド

チューニング

検証

インテル®

インテル® ソフトウェア製品のパフォーマンスおよび最適化に関する注意事項については、http://software.intel.com/en-us/articles/optimization-notice/#opt-jp を参照してください。

シリアルおよび並列パフォーマンス向けにチューニングhotspot、スレッド、ロックと待機、DirectX*、帯域幅など、多くの要因がアプリケーションのパフォーマンスに影響します。優れたパフォーマンスおよびスレッド・プロファイラーを利用して、C、C++、C#、Fortran、アセンブリー・コード、および Java* アプリケーションをチューニングできます。インテル® Parallel Studio XE は、パフォーマンスの問題を修正するのに必要な重要な情報を提供します。以下に 2 つの例を示します。

多くの CPU 時間を費やしているコードを素早く特定 hotspot 解析は、多くの CPU 時間を費やしている関数のソートされたリストを提供します。

ダブルクリックでソースを表示 関数リストで関数をダブルクリックすると、その関数の最もホットな場所のソースに移動します。

プログラムが待機している理由並列プログラムにおけるパフォーマンス低下の一般的な原因の 1 つについて考えてみましょう。長時間のロックの待機は、コアが有効活用されていないことを示します。ロックと待機の解析は、プロセッサーが有効活用されていない場所を明らかにし、その時間を赤で示します。そして、コールスタックからプロセッサーをアイドル状態にしているコードにドリルダウンできます。

準備インテル® VTune™ Amplifier XE

Windows* 入門ガイドLinux* 入門ガイド

製品ページ製品紹介

評価ガイド大幅なパフォーマンス向上

コードブック :インテル® Parallel Studio XE 2013

プライバシー l 利用規約 詳細 6

10 の新機能

概要

設計

ビルド

検証

チューニング

10 の新機能

技術仕様

まとめ

1

2

3

5

4

インテル® ソフトウェア製品のパフォーマンスおよび最適化に関する注意事項については、http://software.intel.com/en-us/articles/optimization-notice/#opt-jp を参照してください。

10 の新機能最新のインテル® プロセッサーのサポート

インテル® AVX2、TSX、および FMA3 のサポートが含まれます。これにより、新しくリリースされた第 3 世代インテル® Core™ vPro™ プロセッサー (開発コード名 : Ivy Bridge) および現在開発中の Haswellマイクロアーキテクチャーもサポートされるようになりました。以前のインテル ® プロセッサーおよび互換プロセッサーとの互換性を保持しつつ、最新のインテル ® プロセッサーで提供されるパフォーマンス機能を利用することができます。

インテル® Xeon Phi™ コプロセッサーのサポートプロトタイプ・システムおよびプリプロダクション・システムで 1 年以上使用されてきましたが、製品でサポートされるようになりました。インテル® Xeon Phi™ コプロセッサー用に新しいツールは必要ありません。代わりに、使い慣れたツールにこのサポートが統合されました。インテル® Xeon Phi™ コプロセッサーで実行するコードの生成、デバッグ、最適化を、使い慣れた強力なツールを使って行えます。

高度な数値再現性機能再現性は、ベータ版評価ユーザーの間で最も評価の高かった機能です。革新的な新しい「条件付き数値再現性」機能は、非可換浮動小数点演算に特有の制御を施し、通常は非常にわずかなパフォーマンス・ペナルティーだけで、各実行およびプロセッサーで再現性を実現します。インテル ® MKL およびインテルの OpenMP* サポートにより浮動小数点演算の再現性オプションが増えたことで、新たな可能性が開けました。

プロファイリング・データの追加と使いやすさの向上インテル® VTune™ Amplifier XE の新しい強力な帯域幅およびメモリーアクセス解析により、難解なパフォーマンス・データの理解に悩むことはありません。

ポインターチェッカー新しいコンパイラー・ベースの診断ツールは、割り当てられているメモリーアドレスの範囲外にアクセスするコードを検出します。これは、セキュリティーを強化し、メモリー破壊のような困難な不具合を見つけるのに役立ちます。

コードブック :インテル® Parallel Studio XE 2013

プライバシー l 利用規約 詳細 7

概要

設計

ビルド

検証

チューニング

10 の新機能

技術仕様

まとめ

8

9

10

7

6

インテル® ソフトウェア製品のパフォーマンスおよび最適化に関する注意事項については、http://software.intel.com/en-us/articles/optimization-notice/#opt-jp を参照してください。

新しいスレッド化支援機能インテル® Advisor XEインテル® Advisor XE は、スケーラブルで保守可能な C、C++、C#、および Fortran コードの開発を支援します。また、アプリケーションがスレッド化されているかどうかにかかわらず、並列化を容易にし、実装する前に選択肢を評価することができます。

Fortran 標準のサポートインテル® Fortran は、Fortran 2003 標準規格の一般に使用されている機能と Fortran 2008 の Co-Array を含む主要機能をサポートしています。インテルでは Fortran 標準のサポートに取り組んでいます。VAX Fortran*、Compaq* Visual Fortran、Fortran 95*、Fortran 90*、Fortran 77*、Fortran 66* を含む数十年におよぶ Fortran サポート、および BLAS、LAPACK、ScaLAPACK、スパースソルバー、高速フーリエ変換、ベクトル演算などのライブラリー・サポートとの下位互換性も保持しています。

C++ パフォーマンス・ガイド新しい C++ パフォーマンス・ガイドは、パフォーマンスを向上する簡単で役立つ 5 ステップのプロセスをガイドします。

C/C++ 規格のサポートC/C++ のサポートに、多くの C++11 および C11 機能のサポートが追加されました。C99 を含む古い規格と IEEE 754-2008 標準の 10 進法浮動小数点演算も引き続きサポートしています。

インテル® Inspector XE によるエラーの検出と排除 C、C++、C#、Fortran、Java*、および MPI アプリケーションで確実にパフォーマンスを引き出せるように、インテル® Inspector XE は効率良くアプリケーションの信頼性を高める方法を提供します。メモリーリークを見つける新しい方法として、ヒープ拡張解析機能が含まれています。

コードブック :インテル® Parallel Studio XE 2013

プライバシー l 利用規約 詳細 8

技術仕様

概要

設計

ビルド

検証

チューニング

10 の新機能

技術仕様

まとめ

インテル® ソフトウェア製品のパフォーマンスおよび最適化に関する注意事項については、http://software.intel.com/en-us/articles/optimization-notice/#opt-jp を参照してください。

技術仕様

プロセッサー・サポート次のプロセッサーを含む複数の世代のインテル® プロセッサーおよび互換プロセッサーで動作が検証されています : インテル® Xeon® プロセッサー、インテル® Core™ プロセッサー、およびインテル® Xeon Phi™ コプロセッサー。

オペレーティング・システム Windows* および Linux* で利用できます。コンパイラーおよびライブラリーは、Apple* の

Xcode* 開発環境で OS X* アドオンとして利用することもできます。

開発ツールおよび環境プラットフォームの規格に準拠しているベンダー (例 : Microsoft*、GCC*、インテル )

のコンパイラーと互換性があります。GNU* ツールおよび Microsoft* Visual Studio*

2008/2010/2012 と統合できます。

プログラミング言語 C、C++、および Fortran 開発を幅広くサポートします。Java* 言語または C# などの .NET

言語を含むプログラムのサポートも含まれます。

サポートすべての製品アップデート、インテル® プレミアサポート、およびインテルのサポートフォーラムを 1 年間ご利用いただけます。インテル® プレミアサポートでは、エンジニアによる

Web ベースのセキュアなサポートが受けられます。

コミュニティー インテルのサポート・フォーラム・コミュニティーに参加して、情報収集や意見交換を行えます。http://software.intel.com/en-us/forums

システム要件 ハードウェア要件およびソフトウェア要件の詳細は、以下の Web サイトをご覧ください。www.intel.com/software/products/systemrequirements/

コードブック :インテル® Parallel Studio XE 2013

プライバシー l 利用規約 詳細 9

まとめ

インテル® Parallel Studio XE 2013 の効果をあなたのコードで実感してみてください

インテル® Parallel Studio XE 2013 を評価する(Windows* または Linux* 版をお選びください )

インテル®ソフトウェア開発製品を購入する

最適化に関する注意事項

インテル® コンパイラーは、互換マイクロプロセッサー向けには、インテル製マイクロプロセッサー向けと同等レベルの最適化が行われない可能性があります。これには、インテル® ストリーミング SIMD 拡張命令 2 (インテル® SSE2)、インテル® ストリーミング SIMD 拡張命令 3 (インテル® SSE3)、ストリーミング SIMD 拡張命令 3 補足命令 (SSSE3) 命令セットに関連する最適化およびその他の最適化が含まれます。インテルでは、インテル製ではないマイクロプロセッサーに対して、最適化の提供、機能、効果を保証していません。本製品のマイクロプロセッサー固有の最適化は、インテル製マイクロプロセッサーでの使用を目的としています。インテル® マイクロアーキテクチャーに非固有の特定の最適化は、インテル製マイクロプロセッサー向けに予約されています。この注意事項の適用対象である特定の命令セットの詳細は、該当する製品のユーザー・リファレンス・ガイドを参照してください。 改訂 #20110804

無償評価版はこちら

概要

設計

ビルド

検証

チューニング

10 の新機能

技術仕様

まとめ

Ⓒ 2012 Intel Corporation.無断での引用、転載を禁じます。Intel、インテル、Intel ロゴ、Intel Core、Xeon、Xeon Phi、Cilk、VTune は、アメリカ合衆国および / またはその他の国における Intel Corporation の商標です。* その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

プライバシー l 利用規約 詳細 10

コードブック :インテル® Parallel Studio XE 2013