スレッド化されていないアプリケーションでも大幅なパフォーマンス向上を容易に実現

Similar documents
Parallel Studio XE Parallel Studio XE hotspot ( )

hotspot の特定と最適化

インテル® Parallel Studio XE 2013 Windows* 版インストール・ガイドおよびリリースノート

Product Brief 高速なコードを素早く開発 インテル Parallel Studio XE 2017 インテル ソフトウェア開発ツール 概要 高速なコード : 現在および次世代のプロセッサーでスケーリングする優れたアプリケーション パフォーマンスを実現します 迅速に開発 : 高速かつ安定し

インテル® Parallel Studio XE 2013 Linux* 版インストール・ガイドおよびリリースノート

インテル® Parallel Studio XE 2015 Composer Edition for Linux* インストール・ガイドおよびリリースノート

インテル(R) Visual Fortran コンパイラ 10.0

インテル® Fortran Studio XE 2011 SP1 Windows* 版インストール・ガイドおよびリリースノート

1 つのツールを実行するだけで違いが出るのでしょうか? はい 多くの場合 複雑なバグを発見して アプリケーションの安定性を向上させることができます このガイドでは インテル Inspector XE 解析ツールを使用して コードの問題を排除する方法を説明します これにより コードの信頼性が向上し 開

Click to edit title

Microsoft PowerPoint - 1_コンパイラ入門セミナー.ppt

インテル® Parallel Studio XE 2019 Composer Edition for Fortran Windows : インストール・ガイド

インテル® Parallel Studio XE 2019 Composer Edition for Fortran Windows 日本語版 : インストール・ガイド

Tutorial-GettingStarted

内容 インテル Advisor ベクトル化アドバイザー入門ガイド Version インテル Advisor の利用 ワークフロー... 3 STEP1. 必要条件の設定... 4 STEP2. インテル Advisor の起動... 5 STEP3. プロジェクトの作成

目次 1 はじめに 製品に含まれるコンポーネント 動作環境... 4 オペレーティング システム... 4 Microsoft Visual Studio* 製品 製品のダウンロード 製品版をインストールする場合 評価版を

for (int x = 0; x < X_MAX; x++) { /* これらの 3 つの行は外部ループの自己データと * 合計データの両方にカウントされます */ bar[x * 2] = x * ; bar[(x * 2) - 1] = (x - 1.0) *

Microsoft Word - IVF15.0.1J_Install.doc

インテル Parallel Studio XE 2017 Composer Edition for Fortran Windows* インストール ガイド Rev (2017/06/08) エクセルソフト株式会社

インテル® VTune™ Amplifier : Windows 環境向けスタートガイド

製品価格 ( 新規購入 ) INT6531 インテル VTune Amplifier XE 2017 for Windows Floating 1-275, ,000 INT6532 インテル VTune Amplifier XE 2017 for Linux Floating 1-27

PowerPoint Presentation

Microsoft Word - p2viewer_plus_jpn20.doc

NetworkVantage 9

目次 1 はじめに 製品コンポーネント 動作環境 インストールを行う前に 製品版と評価版 製品のインストール手順 製品の登録 製品のダウンロード ライセンスファイルの取得

Intel_ParallelStudioXE2013_ClusterStudioXE2013_Introduction.pptx

Application Note Application Note No. ESC-APN Document No.: ESC-APN adviceluna Linux デバッグ手順 (MIPS コア編 ) はじめに adviceluna Linux デバッグ手順 ( 以

AN1609 GNUコンパイラ導入ガイド

Visual Studio 2017 RC インストール & ファーストステップガイド 2016 年 11 月 16 日 (V1.0)

インテル® Parallel Studio XE 2017 for Linux* インストール・ガイド

Microsoft Word - VisualC++利用法2.doc

目次 1 はじめに 本文書の概要 PVF ソフトウェアと VISUAL STUDIO PVF ソフトウェアの種類 MICROSOFT VISUAL STUDIO の日本語化について VISUAL STUDIO

インテル® VTune™ Amplifier XE を使用したストレージ向けの パフォーマンス最適化

インテルソウトウェア開発製品アカデミック版特定ユーザーライセンス標準価格表 株式会社アークブレイン 2016 年 5 月 10 日 ~ 製品型番 アカデミック版特定ユーザーライセンス 税別標準価格 税込標準価格 INT5744 インテル Parallel Studio XE 2016 Cluster

インテル® キャッシュ・アクセラレーション・ソフトウェア (インテル® CAS) Linux* 版 v2.8 (GA)

NEC Express5800 シリーズ COBOL Enterprise Edition クライアントライセンス V1 COBOL Enterprise Edition クライアントライセンス V1 (1 年間保守付き ) COBOL Enterprise Edition クライアントライセンス

インテル(R) C++ Composer XE 2011 Windows版 入門ガイド

Oracle Application Expressの機能の最大活用-インタラクティブ・レポート

楽2ライブラリ クライアントサーバ V5.0 体験版 クライアントOS利用時におけるIIS設定手順書

製品型番 商用版特定ユーザーライセンス INT7001 インテル System Studio 2018 FreeBSD \163,080 INT6673 インテル Media Server Studio 2017 Essentials \84,000 \90,720 Edit INT6674 インテ

PGRelief C/C++ 強化ポイント説明書

Microsoft Word - AW-SF100導入手順書(スタンドアローン版)_ doc

セットアップカード

チュートリアル: インテル® MPI ライブラリー向け MPI Tuner (Windows*)

実習を行う上での心構えについて

NEC COBOL Enterprise Edition Developer クライアントライセンス V2.0 COBOL Enterprise Edition Developer クライアントライセンス V2.0 (1 年間保守付 ) COBOL Enterprise Edition Develo

Introducing Intel® Parallel Studio XE 2015

クラウドファイルサーバーデスクトップ版 インストールマニュアル 利用者機能 第 1.2 版 2019/04/01 富士通株式会社

Microsoft Word - HOKUSAI_system_overview_ja.docx

FormPat 環境設定ガイド

Total Disc Makerサイレントインストールガイド

Microsoft* Windows* 10 における新しい命令セットの利用

インテル® Parallel Studio XE 2016 Update 1 for Linux* インストール・ガイド

RW-5100 導入説明書 Windows7 用 2017 年 7 月 シャープ株式会社

バトルカードでゲーマーやエンスージアストへの販売促進

データ移行ツール ユーザーガイド Data Migration Tool User Guide SK kynix Inc Rev 1.01

Auto Tracking Server Software 導入手順書

RW-4040 導入説明書 Windows 7 用 2017 年 7 月 シャープ株式会社

クラウドファイルサーバーデスクトップ版 インストールマニュアル ファイルサーバー管理機能 第 1.1 版 2017/01/24 富士通株式会社

BricRobo V1.5 インストールマニュアル

Flash Loader

改版履歴 Ver. 日付履歴 1.0 版 2014/5/30 目次 0 はじめに 本文中の記号について Windows Server Failover Cluster をインストールするための準備 Windows Server Failover

アプリケーション補足説明書Microsoft(R) Office 2003 Editions

PHP 開発ツール Zend Studio PHP アフ リケーションサーハ ー Zend Server OSC Tokyo/Spring /02/28 株式会社イグアスソリューション事業部

アプリケーション補足説明書(Office2003)Microsoft(R) Office 2003 Editions

Microsoft Word - Manage_Add-ons

アプリケーション補足説明書(Office2003)

Code Modernization Online training plan

内容 1 はじめに インストールの手順 起動の手順 Enterprise Architect のプロジェクトファイルを開く 内容を参照する プロジェクトブラウザを利用する ダイアグラムを開く 便利な機能.

はじめに - マニュアルエディター機能の概要 - Dojoの種類とマニュアルエディター機能解除について マニュアルレイアウトの生成 - マニュアルレイアウトの生成 基本編集 4 - 表紙の挿入 4 - 目次の挿入 5 - 一括変換 6 4 マニュアルビルド 9 4- MS Word 9

Touch Pen Utility

Veritas System Recovery 16 Management Solution Readme

InfoCage FileShell 持出閲覧形式保護ファイルビューアー 利用ガイド

Microsoft Visual Studio 2010 Professional Data Sheet

Windows 10 IoT Core MVA 2015 August Windows 10 IoT Core ハンズオントレーニング Building and running Github MS IoT Samples on Windows 10 IoT Core 3 章 UWP アプリの開発 L

Touch Pen Utility

DEP(Data Execution Prevention:データ実行防止)機能に関する制限事項

Touch Panel Settings Tool

Microsoft PowerPoint Quality-sama_Seminar.pptx

2 / 26 平成 26 年 4 月 11 日 ( 金 ) 午後 1 時 9 分 Visual C Express の使用法 ( 東海大学理学部物理学科 ) 無償で利用できる開発環境 (Windows XP 以降 ) Visual Studio 2010 Express

始める スタート > 全てのプログラム > Cypress > PSoC Creator 2.0 > PSoC Creator 2.0 をクリックします プロジェクトを作成する / 開く Start Page の "Create New Project" をクリックし 要求されたプロジェクト情報を入

Intel Software Presentation Template

Microsoft Word - Custom1_ABC伝票印刷ドライバー_導入ガイド

PowerPoint プレゼンテーション

Oracle Database Clientクイック・インストレーション・ガイド, 10gリリース1( ) for Microsoft Windows

Microsoft Word - ESX_Setup_R15.docx

Base_and_Additive_Client_Access_Licenses_JP (Jun 2017)

アーカイブ機能インストールマニュアル

パソコンソフト使い放題 クライアントユーザーマニュアル 最終更新日 2013 年 10 月 21 日

アプリケーション補足説明書(Office2003)

Microsoft Word - NW2013_Installation_Guide_English_no_screenshots_JPN.doc

事前準備 : BIM を使用する際の必要要件 BIM が問題なく動作するために不可欠なシステム要件をご確認ください BIM をご利用頂くには 以下のハードウェアおよびソフトウェアが必要となります ハードウェア Microsoft Windows Windows 7 もしくは 8, 64 bit Ma

KSforWindowsServerのご紹介

新規インストールガイド Microsoft Office Professional Plus 2016 本書は Download Station から Microsoft Office Professional Plus 2016( 以下 Office) をダウンロ ドし 新規インストールを行う手順

ゲームプログラミング講習 第0章 導入

RICOH Device Manager Pro バックアップ/バージョンアップ作業手順書

RDX へのバックアップ 3 ベアメタル復旧手順書 2014 年 11 月

AN1526 RX開発環境の使用方法(CS+、Renesas Flash Programmer)

OmniTrust

Acronis® Backup & Recovery ™ 10 Advanced Editions

Transcription:

はじめに 本ガイドは インテル Parallel Studio XE を使用してアプリケーション中の hotspot ( 多くの時間を費やしているコード領域 ) を見つけ それらの領域を再コンパイルすることでアプリケーション全体のパフォーマンスを向上する方法について説明します 1 つのファイルを再コンパイルするだけで違いが出るのでしょうか? はい 多くの場合 インテル Parallel Studio XE の最適化コンパイラーを使用して 1 つのファイルを再コンパイルするだけでパフォーマンスが大幅に向上します 必ずしもアプリケーション全体を再コンパイルする必要はありません これは シリアル アプリケーションと並列アプリケーションの両方に当てはまります Pi を計算する PiSolver ( 値が小さいほうが良い ) 234ms 462ms 0 100 200 300 400 500 Microsoft* Visual C++* 2012* インテル Intel C++ C++ Compiler コンパイラー 15.0 15.0 システム構成 : インテル Core i5-3550 プロセッサー 3.30GHz 4 コア 4GB RAM Microsoft* Windows Server* 2008 R2 Enterprise SP 1 (64 ビット ) 性能に関するテストに使用されるソフトウェアとワークロードは 性能がインテル マイクロプロセッサー用に最適化されていることがあります SYSmark* や MobileMark* などの性能テストは 特定のコンピューター システム コンポーネント ソフトウェア 操作 機能に基づいて行ったものです 結果はこれらの要因によって異なります 製品の購入を検討される場合は 他の製品と組み合わせた場合の本製品の性能など ほかの情報や性能テストも参考にして パフォーマンスを総合的に評価することをお勧めします * その他の社名 製品名などは 一般に各社の表示 商標または登録商標です ベンチマークの出典 : インテルコーポレーション最適化に関する注意事項 : ドキュメントの最後を参照 パフォーマンス向上のためのステップ 1. hotspot の特定 : アプリケーションが時間を費やしている場所を測定する 効率良く最適化を行うには 多くの時間を費やしているアプリケーションのコード部分を最適化します すでに高速な部分を最適化しても パフォーマンスはほとんど向上しません hotspot とは アプリケーションが多くの時間を費やしている場所を指します hotspot は インテル VTune Amplifier XE のようなプロファイリング ツールを使用すると 容易に特定できます 必要のない最適化に時間をかけないでください hotspot を特定することが大切です hotspot が特定できたら 次は何をすれば良いでしょうか 場合によっては プログラムの実行を高速化する方法がすぐに分かることもあります 例えば ある操作を繰り返し実行している場合 実行回数を 1 回にできることがあります しかし ほとんどの場合 答えはそれほど明確ではありません このため アドバイスを表示したり 自動的に処理できませんか? という質問をよく受けます 幸いなことに 多くの場合はそれが可能です 2. hotspot の最適化 : hotspot のみ ( または 1 つのファイルのみ ) 再コンパイルする 多くの場合 インテル C++ コンパイラーで hotspot が含まれているファイルを再コンパイルするだけでパフォーマンスが向上します 小規模なアプリケーションでは すべてを再コンパイルしてもそれほど時間はかかりませんが 多くのモジュールやプロジェクトが含まれる大規模なアプリケーションでは すべてを再コンパイルすることは実用的ではありません 幸い アプリケーション全体の再コンパイルが必要になることはめったにありません ほとんどの場合 いつくかのファイル もしくは 1 つのプロジェクトの再コンパイルが必要になるだけです インテル コンパイラーは Microsoft* コンパイラーとバイナリーおよびデバッグ互換なので これらのコンパイラーでビルドしたオブジェクトをシームレスに利用できます 2

実践 ステップ 1: インストールと設定 インテル Parallel Studio XE のインストールと設定 1. インテル Parallel Studio XE の評価版をダウンロードしてインストールします ステップ 2: サンプル アプリケーションのインストールと実行 1. pisolver-2bsample.zip サンプルファイルをローカルマシンにダウンロードします 2. このサンプルは Microsoft* Visual Studio* を使用して作成された MFC ダイアログベースのプログラムです ソリューション ファイルは Microsoft* Visual Studio* 2010 2012 2013 で利用できます このプログラムは 内部的に C 関数を呼び出して π の値を求め GUI に結果を表示します 3. 書き込み可能なディレクトリーまたはシステムの共有ディレクトリー (<My Documents>\Intel Parallel Studio XE\samples フォルダーなど ) に PiSolver+Sample.zip ファイルを展開します サンプルのビルド : Microsoft* Visual Studio* 環境でデフォルトの Microsoft* Visual C++* コンパイラーを使用して PiSolver サンプル アプリケーションを Release モードでビルドします Microsoft* Visual Studio* で [File ( ファイル )] > [Open ( 開く )] > [Project/Solution... ( プロジェクト / ソリューション...)] を選択し PiSolver.sln ファイルのあるフォルダー (zip を展開したフォルダー ) に移動します ( 図 1) 図 1 Microsoft* Visual C++* で Release ( 最適化 ) 構成設定を使用して ソリューションをビルドします [Solution Configuration ( ソリューション構成 )] ドロップダウン リストから Release 設定を選択します ( 図 2) 図 2 3

[Build ( ビルド )] > [Build Solution ( ソリューションのビルド )] でプログラムをビルドします ( 図 3) 図 3 Microsoft* Visual Studio* で [Debug ( デバッグ )] > [Start Without Debugging ( デバッグなしで開始 )] を選択して アプリケーションを実行します ( 図 4) 図 4 [Calculate ( 計算 )] ボタンをクリックして π の値を計算し 処理に要した時間 ( ミリ秒 ) を確認します ( 図 5) 図 5 4

ステップ 3: インテル VTune Amplifier XE の実行 : hotspot を特定する 1. Release ( 最適化 ) 構成であっても デバッグシンボルが生成されることを確認します デバッグシンボルを生成することで インテル VTune Amplifier XE はアプリケーションに関する多くの情報を提供できるようになります [Solution Explorer ( ソリューションエクスプローラ )] ウィンドウで pi をシングルクリックして pi プロジェクトをハイライトします [Project ( プロジェクト )] > [Properties ( プロパティ )] を選択して [Pi Property Pages (pi プロパティページ )] ダイアログボックスを開きます [Configuration Properties ( 構成プロパティ )] が展開されていない場合は展開します [C/C++] を展開して [General ( 全般 )] をクリックします [Debug Information Format ( デバッグ情報の形式 )] で [Program Database (/Zi) ( プログラムデータベース (/Zi))] を選択して [Apply ( 適用 )] をクリックします ( 図 6) 図 6 [Linker ( リンカ )] プロパティーを展開して [Debugging ( デバッグ )] をクリックし [Generate Debug Info ( デバッグ情報の生成 )] > [Yes (/DEBUG) ( はい (/DEBUG))] を選択します [Apply ( 適用 )] そして [OK] をクリックします ( 図 7) 図 7 5

2. インテル VTune Amplifier XE ツールバーにある [New Analysis ( 新しい解析 )] ボタンをクリックし ( 図 8) [Hotspots] を選択します ( 図 9) 図 8 3. [Start ( 開始 )] ボタンをクリックします PiSolver アプリケーションが起動します 4. PiSolver アプリケーションで [Calculate ( 計算 )] ボタンをクリックして計算を行い ダイアログボックスに結果と時間が表示されたら [Close ( 閉じる )] ボタンをクリックします この時点で インテル VTune Amplifier XE によるデータ収集は完了し 図 10 のような hotspot レポートが表示されます (hotspot の分析結果を含むテキストボックスが表示されます 内容を確認してからこのテキストボックスを閉じます ) 図 9 図 10 6

5. [Bottom-up ( ボトムアップ )] をクリックしてすべての hotspot を確認します ( 図 11) 図 11 hotspot 分析からの結果 結果が収集されるたびに番号 (000) が上がります [Function/Call Stack ( 関数 / コールスタック )] は hotspot データのデフォルトのグループレベルです 矢印ボタンをクリックして グループレベルを変更できます 関数名の前にあるプラス記号をクリックすると 選択された関数のコールスタックを表示できます 展開されたレベルごとに 選択された関数の呼び出し元 次にその呼び出し元の呼び出し元 のように順に表示されます CPU 時間は 論理プロセッサーで関数を実行するのにかかる時間です 複数のスレッドの場合は CPU 時間が合計されます これは hotspot 分析結果の [Data of Interest ( 特定のデータ )] 列です 選択された関数のスタック情報全体がグリッドに表示されます 黄色のバーは hotspot 関数の CPU 時間に対する選択されたスタックの割合を示しています タイムライン ビューにより 実行時間を通してスレッド全体の CPU アクティビティーを確認することができます 6. ボトムアップの関数リストで CalcPi の先頭にあるプラス記号をクリックして 関数のコールスタックを展開します そして 関数 CalcPi をダブルクリックして ソースコードを表示します ソースファイル名を確認します ( 図 12) 7 図 12

7. 一部のアプリケーションでは トップダウン ツリー ビューを使用したほうがコールツリーを確認しやすいでしょう 大規模なアプリケーションでは hotspot を含む関数を特定するために大規模な関数ツリーを展開することになります PiSolver サンプルでは hotspot は pi.cpp に含まれています ステップ 4: インテル C++ コンパイラーでコンパイルする 1. Microsoft* Visual Studio* の [Solution Explorer ( ソリューションエクスプローラ )] で hotspot が含まれているファイルのプロジェクトを特定します PiSolver サンプルでは pi.cpp は pi プロジェクトに含まれています 2. [Solution Explorer ( ソリューションエクスプローラ )] で pi をクリックして pi プロジェクトをハイライトします 3. [ プロジェクト ] > [Intel Compiler XE 2015 ( インテル (R) コンパイラー XE 2015)] > [Use Intel C++ ( インテル (R) C++ を使用 )] を選択します 4. インテル C++ コンパイラーの [Confirmation ( 確認 )] ボックスが表示されます [OK] をクリックします 5. Microsoft* C++ コンパイラーを使用するようにプロジェクトの設定を変更します Microsoft* Visual Studio* 2010 ユーザー : [Project ( プロジェクト )] > [Properties ( プロパティ )] > [Configuration Properties ( 構成プロパティ )] > [C/C++] > [General [Intel C++] ( 全般 [ インテル (R) C++])] で [Use Visual C++ Compiler (Visual C++ コンパイラーの使用 )] を [Yes ( はい )] に変更します ( 図 13) 図 13 [Apply ( 適用 )] そして [OK] をクリックします これで プロジェクトで Microsoft* C++ コンパイラーを使用できるようになりました Microsoft* Visual Studio* 2012 および 2013 の場合 : [Project ( プロジェクト )] > [Properties ( プロパティ )] > [Configuration Properties ( 構成プロパティ )] > [General ( 全般 )] > [Platform Toolset ( プラットフォーム ツールセット )] を Visual Studio 2012 (v110) または Visual Studio 2013 (v120) に変更します ( 図 14) 図 14 6. [Apply ( 適用 )] そして [OK] をクリックします 現在 プロジェクトは Microsoft* C++ コンパイラーを使用するように設定されています pi.cpp ファイルでインテル C++ コンパイラーを使用するように設定します 8

Microsoft* Visual Studio* 2010 ユーザー : [Solution Explorer ( ソリューションエクスプローラ )] で pi プロジェクト そしてソースファイルを展開します pi.cpp ファイルを右クリックして [Properties ( プロパティ )] > [Configuration Properties ( 構成プロパティ )] > [C/C++] > [General [Intel C++] ( 全般 [ インテル (R) C++])] で [Use Visual C++ Compiler (Visual C++ コンパイラーの使用 )] を [No ( いいえ )] に変更します ( 図 15) [Apply ( 適用 )] そして [OK] をクリックします 図 15 注 : Visual Studio* 2010 では Ctrl + 左クリックで複数のファイルを選択して インテル C++ コンパイラーでビルドすることもできます 1. pi プロジェクトをクリックしてハイライトし [Build ( ビルド )] > [Build Pi (pi のビルド )] を選択してビルドします [Output ( 出力 )] ペインには pi.cpp はインテル コンパイラーでビルドされ その他のファイルは Microsoft* コンパイラーでビルドされることを示すメッセージが表示されます 2. [Debug ( デバッグ )] > [Start Without Debugging ( デバッグなしで開始 )] を選択して PiSolver アプリケーションを実行し アプリケーションのウィンドウにある [Calculate ( 計算 )] ボタンをクリックします Microsoft* Visual C++* コンパイラーで pi.cpp をコンパイルした場合よりも大幅に高速化されていることが確認できます Microsoft* Visual Studio* 2012 および 2013 の場合 : [Solution Explorer ( ソリューションエクスプローラ )] で pi プロジェクト そしてソースファイルを展開します pi.cpp ファイルを右クリックして [Intel Compiler XE 2015 ( インテル (R) コンパイラー XE 2015)] > [Use Intel C++ ( インテル (R) C++ を使用 )] を選択します ( 図 16) [OK] をクリックします 図 16 注 : Visual Studio* 2012 および 2013 では Ctrl + 左クリックで複数のファイルを選択して インテル C++ コンパイラーでビルドすることもできます 1. pi プロジェクトをクリックしてハイライトし [Build ( ビルド )] > [Build Pi (pi のビルド )] を選択してビルドします [Output ( 出力 )] ペインには pi.cpp はインテル コンパイラーでビルドされ その他のファイルは Microsoft* コンパイラーでビルドされることを示すメッセージが表示されます 2. [Debug ( デバッグ )] > [Start Without Debugging ( デバッグなしで開始 )] を選択して PiSolver アプリケーションを実行し アプリケーションのウィンドウにある [Calculate ( 計算 )] ボタンをクリックします Microsoft* Visual C++* コンパイラーで pi.cpp をコンパイルした場合よりも大幅に高速化されていることが確認できます 9

結果 テストシステムでは インテル C++ コンパイラー XE で再コンパイルしただけで PiSolver の実行速度が 96% も向上しました アプリケーション 1 再コンパイル前 2 再コンパイル後スピードアップ PiSolver 0.462 秒 0.234 秒 1.97 倍 システム構成 : インテル Core i5-3550 プロセッサー 3.30GHz 4 コア 4GB RAM Microsoft* Windows Server* 2008 R2 Enterprise SP1 (64 ビット ) この例では インテル C++ コンパイラー XE で再コンパイルしただけでパフォーマンスが向上しました スレッド化されていないアプリケーションを含め ほとんどの場合は再コンパイルするだけで大幅なパフォーマンスの向上が得られます ライブラリー関数に多くの時間が費やされていることがインテル VTune Amplifier XE で分かることもあります その場合 ライブラリー関数をより高速なものに置換することで アプリケーションを簡単にスピードアップすることができます 最適化コンパイラーに加えて インテル Parallel Studio XE for C++ には マルチコアとベクトル化の利点を活用する効率良いコードを簡単に記述できるように支援するライブラリーとプログラミング モデルが含まれています インテル IPP は マルチメディア データ処理 通信アプリケーション向けに よく使用される基本的なアルゴリズムを網羅した 数々の最適化関数を提供します インテル MKL は 極めて高いパフォーマンスが求められるアプリケーション向けの数学ルーチンで 主要な数学関数として BLAS LAPACK ScaLAPACK1 スパースソルバー 高速フーリエ変換 ベクトル演算などが含まれています インテル TBB は広く使用されている C++ テンプレート ライブラリーであり 安定性を備え 移植性とスケーラビリティーに優れた並列アプリケーションの作成を簡素化します C/C++ 向けの言語拡張であるインテル Cilk Plus は 並列プログラミング用の単純で非常に強力なモデルを提供します その一方で ランタイム ライブラリーとテンプレート ライブラリーは 並列アプリケーションの実行向けにきめ細やかにチューニングされた環境を提供します ステップ 5: インテル VTune Amplifier XE の使用と結果の比較 1. インテル VTune Amplifier XE ツールバーにある [New Analysis ( 新しい解析 )] ボタンをクリックし [Hotspots] 解析を選択します [Start ( 開始 )] をクリックすると アプリケーションが再度実行されます [Calculate ( 計算 )] ボタンを再度クリックして 計算が完了したら [Close ( 閉じる )] ボタンをクリックします 2. [Summay ( サマリー )] タブでアプリケーションの合計時間を確認します CPU 時間が減少しているのが分かります また コールツリーでは ほかの関数は比較的短時間であるのに対して pigetsolutions だけが突出しています 大規模なアプリケーションでは 1 つの hotspot を解決すると 最適化すべき別の hotspot が見つかることがあります ( 図 17) 10

図 17 3. 結果を比較する別の方法として インテル VTune Amplifier XE の [Compare Results ( 結果の比較 )] 機能があります この機能を使用すると 以前の実行結果と並べて比較し 異なる箇所を確認することができます これを行うには 結果ファイルを 2 つ選択して [Compare ( 比較 )] ボタンをクリックします 図 18 のような比較画面が表示されます 関数ごとの変更箇所を示す詳細レポートが表示され CalcPi の時間が大幅に短縮されたことが分かります 図 18 11

大規模で複雑なアプリケーションの場合のヒント PiSolver サンプルは小さなアプリケーションですが hotspot を素早く検出し 再コンパイルする方法を紹介しています 複数のプロジェクトからなる大規模なアプリケーションでは hotspot プロファイルで長い時間を費やしている関数が多数表示されることがあります そのような場合 1 つ ( または 2 つ ) のファイルだけではなく hotspot が検出されたプロジェクト全体をリビルドするほうが簡単で より良いパフォーマンスを得られることがあります 次に hotspot をリビルドする場合のいくつかのヒントを示します Microsoft* Visual C++* コンパイラーの場合は [Whole-Program Optimization ( プログラム全体の最適化 )] を [Link-time Code Generation (/GL) ( リンク時のコード生成を使用 (/GL))] に設定してみてください インテル コンパイラーの場合は [Interprocedural Optimization ( プロシージャー間の最適化 )] を [Multi-file (/Qipo) ( 複数ファイル (/Qipo))] に設定してみてください この最適化を行うことで アプリケーションによっては ファイル間のインライン展開とその他のファイル / 関数間の最適化によりパフォーマンスが大幅に向上します どちらのコンパイラーでも Release 構成を作成するとこのオプションがデフォルトで有効になります ただし 最適化を行ったコンパイラーがリンクも行う必要があります そのため PiSolver サンプルで行ったように インテル コンパイラーで 1 つのファイルだけを再コンパイルすると インテル コンパイラーによるプログラム全体の最適化の利点を完全に活用することができません これは まさに本ドキュメントの冒頭で紹介した Smoke アプリケーションの結果 ( 詳細は リンクされたビデオを参照 ) に当てはまります Smoke は多数のプロジェクトからなる非常に大きなアプリケーションですが hotspot プロジェクトが比較的少ないため 短時間のリビルドでパフォーマンスが大幅に向上しました Smoke のように ソリューションに多数のプロジェクトがある大規模なアプリケーションでは hotspot ファイルを含むプロジェクト全体をリビルドするほうが簡単です プロジェクト全体の設定をインテル C++ コンパイラー XE のものに切り替え プロジェクトをリビルドするだけです この場合 前述の インテル C++ コンパイラーを使用してコンパイル のステップ 5 と 6 はスキップします 多くのアプリケーションでは プリコンパイル済みヘッダー ( 今後の使用のために保存されたプリコンパイル済み.h ファイルなど ) にも注意が必要です Microsoft* コンパイラーによってビルドされたプリコンパイル済みヘッダーは インテル コンパイラーでは使用することができません リビルドするか 使用しないようにしてください インテル コンパイラーをプロジェクト全体に使用する場合は インテル コンパイラーによってプリコンパイル済みヘッダーがビルドされるため問題ありません ただし 1 つのファイルだけをリビルドする場合は インテル コンパイラーでビルドするファイルに対して次の操作を行う必要があります o インテル コンパイラーでコンパイルするファイル ( 例えば pi.cpp) を右クリックして [Properties ( プロパティ )] を選択します [Property Page ( プロパティページ )] ボックスで [Configuration Properties ( 構成プロパティ )] > [C/C++] > [Precompiled Headers ( プリコンパイル済みヘッダー )] > [Create/Use Precompiled Header ( プリコンパイル済みヘッダーの作成 / 使用 )] > [Not Using Precompiled Headers ( プリコンパイル済みヘッダーを使用しない )] を選択します ( 図 19) 図 19 12

まとめ インテル C++ コンパイラーを使用して 1 つのファイルを再コンパイルするだけでアプリケーションを高速化できます ポイントは hotspot を含むソースファイルを再コンパイルすることです インテル VTune Amplifier XE を使用すると hotspot を特定できるため 最適化作業の労力を軽減できます 重要な用語と概念 重要な用語 CPU 時間 : 論理プロセッサーでスレッドの実行に費やした時間 複数のスレッドの場合は すべてのスレッドの CPU 時間の合計です アプリケーション CPU 時間は アプリケーションで実行されたすべてのスレッドの CPU 時間の合計です ターゲット : インテル VTune Amplifier XE を使用して分析する実行ファイル 重要な概念 hotspot 分析 : アプリケーション フローの理解と 実行に長い時間がかかっているコード領域 (hotspot) の特定に役立ちます hotspot は アプリケーション全体のパフォーマンスに大きな影響を及ぼすため 重点的にチューニングを行う箇所です インテル VTune Amplifier XE は 関数で費やされた時間順にアプリケーションの関数のリストを作成します 関数のコールスタックも表示するため 時間を費やしている関数がどのように呼び出されているかを確認できます オーバーヘッドの少ない ( 約 5%) 統計的サンプリング アルゴリズムを使用して アプリケーションの実行速度を大幅に低下させることなく必要な情報を取得します 関連情報 ラーニングラボ テクニカルビデオ ホワイトペーパー Webinar など インテル Parallel Studio XE 製品ページ HOW TO ビデオ 入門ガイド ドキュメント 製品の詳細情報 サポートなど 評価ガイド さまざまな機能の使用法を紹介する評価ガイド 30 日間の評価版のダウンロード 13

購入方法 : 言語別のスイート インテル Parallel Studio XE には 開発のニーズに応じて 3 つのエディションがあります Composer Edition と Professional Edition では C++ または Fortran のいずれかの言語で利用できます Composer Edition: 高速な並列コードを構築するためのコンパイラー パフォーマンス ライブラリー 並列モデルが含まれています Professional Edition: Composer Edition の機能に加えて 高速な並列コードの設計 ビルド デバッグ チューニング用にパフォーマンス プロファイラー スレッド設計 / プロトタイピング ツール メモリー / スレッドデバッガーが含まれています Cluster Edition: Professional Edition の機能に加えて MPI を含む高速な並列コードの設計 ビルド デバッグ チューニング用に MPI クラスター通信ライブラリー (MPI エラーチェックおよびチューニング ユーティリティー付き ) が含まれています インテル Parallel Studio XE Composer Edition 1 インテル Parallel Studio XE Professional Edition 1 インテル Parallel Studio XE Cluster Edition 9 インテル C++ コンパイラー インテル Fortran コンパイラー インテル TBB (C++ のみ ) インテル IPP (C++ のみ ) インテル MKL インテル Cilk Plus (C++ のみ ) インテルによる OpenMP* 実装 ローグウェーブ IMSL* ライブラリー 2 (Fortran のみ ) バンドルおよびアドオンアドオンアドオン インテル Advisor XE インテル Inspector XE インテル VTune Amplifier XE 3 インテル MPI ライブラリー 3 インテル Trace Analyzer & Collector オペレーティング システム ( 開発環境 ) Windows* (Visual Studio*) Linux* (GNU*) OS X* 4 (XCode*) 注 : 1. C++ または Fortran のいずれか あるいは両言語で利用できます 2. Windows* Fortran スイートのアドオンまたは Composer Edition のバンドルとして利用できます Windows* (Visual Studio*) Linux* (GNU*) Windows* (Visual Studio*) Linux* (GNU*) 3. スイートのバンドルまたはスタンドアロンとして利用できます 4. OS X* の言語スイートとして利用できます インテル Parallel Studio XE の詳細 : 以下の Web サイトをご覧ください http://intel.ly/parallel-studio-xe あるいは 左の QR コードをスキャンしてください 30 日間の評価版 : http://intel.ly/sw-tools-eval の Web サイトで Product Suites をクリックしてください 著作権と商標について 本資料に掲載されている情報は インテル製品の概要説明を目的としたものです 本資料は 明示されているか否かにかかわらず また禁反言によるとよらずにかかわらず いかなる知的財産権のライセンスも許諾するものではありません 製品に付属の売買契約書 Intel's Terms and Conditions of Sale に規定されている場合を除き インテルはいかなる責任を負うものではなく またインテル製品の販売や使用に関する明示または黙示の保証 ( 特定目的への適合性 商品適格性 あらゆる特許権 著作権 その他知的財産権の非侵害性への保証を含む ) に関してもいかなる責任も負いません 最適化に関する注意事項インテル コンパイラーは 互換マイクロプロセッサー向けには インテル製マイクロプロセッサー向けと同等レベルの最適化が行われない可能性があります これには インテル ストリーミング SIMD 拡張命令 2 ( インテル SSE2) インテル ストリーミング SIMD 拡張命令 3 ( インテル SSE3) ストリーミング SIMD 拡張命令 3 補足命令 (SSSE3) 命令セットに関連する最適化およびその他の最適化が含まれます インテルでは インテル製ではないマイクロプロセッサーに対して 最適化の提供 機能 効果を保証していません 本製品のマイクロプロセッサー固有の最適化は インテル製マイクロプロセッサーでの使用を目的としています インテル マイクロアーキテクチャーに非固有の特定の最適化は インテル製マイクロプロセッサー向けに予約されています この注意事項の適用対象である特定の命令セットに関する詳細は 該当する製品のユーザー リファレンス ガイドを参照してください 改訂 #20110804 2014 Intel Corporation. 無断での引用 転載を禁じます Intel インテル Intel ロゴ Intel Core Cilk VTune は アメリカ合衆国および / またはその他の国における Intel Corporation の商標です * その他の社名 製品名などは 一般に各社の表示 商標または登録商標です JPN/1501/PDF/XL/SSG/KS boost-performance-studioxe-evalguide/rev-082014 14