Shoeisha Technology Media

CodeZine(コードジン)

記事種別から探す

正しい分析でムダなくチューニング
アプリの並列化を支援する「インテル Parallel Amplifier」

インテルParallel Amplifierによるアプリケーションのボトルネック分析

  • LINEで送る
  • このエントリーをはてなブックマークに追加
2010/07/01 14:00

 マルチコアCPUの性能を引き出すアプリケーション開発をサポートするインテル開発製品群のうち、チューニングまわりを担当する「インテルParallel Amplifier」を紹介します。本稿では、数ある分析機能の中で、Hotspot分析および並列性分析にフォーカスを当て解説します。

目次

はじめに

 ハードウェアの性能を最大限に引き出すアプリケーションを製作するためには、仕様通りの処理を行うソースコードを実装するだけでは不十分で、チューニングという段階が必要となります。特に昨今のハードウェア事情は、CPUのマルチコア化が急速に進んでおり、「CPUが新しくなれば、無条件にアプリケーションの性能が向上していく」といった楽な状況は古き良き時代のものとなりました(CPU業界では「the free lunch is over : フリーランチの終焉」とも呼ばれています)。

 マルチコアCPUを活用するためには、アプリケーションを並列化(マルチスレッド化・ベクトル命令の活用など)して実装する必要がありますが、多くのノウハウが必要となり、並列処理に伴う落とし穴にも注意が必要です。

 世界最大の半導体メーカーであり、マイクロプロセッサの製造元でもあるインテル社は、現在浸透が進んでいるマルチコアプロセッサーの性能を最大限に活かすためのさまざまなソフトウェアを開発者向けにリリースしています。今回紹介する「インテルParallel Amplifier」(以下、Parallel Amplifier)もその一つで、次のような機能を提供します。

  • アプリケーションのHotspot分析(どの部分を並列処理すると効率が良いか)
  • アプリケーションの並列性分析(どの程度並列処理が行われているか)
  • アプリケーションのロックと待機の分析(どの部分で並列処理が妨げられているか)

 Parallel Amplifierは単体販売も行われていますが、開発ツールスイート製品である「インテルParallel Studio」(以下、Parallel Studio)にも含まれています。Parallel Studioは

の3製品で構成されています。それぞれの製品を使った並列処理実装の流れは図1のようになります。

図1 Parallel Studio製品を使った並列処理実装の流れ
図1 Parallel Studio製品を使った並列処理実装の流れ

 本記事では、Parallel AmplifierのHotspot分析および並列性分析について解説します。

 Parallel Studioの概要については『インテル Parallel Studioを使って並列化プログラミングを試してみた』を、Parallel Inspectorについては『並列プログラミングの効率的なデバッグを実現する「Parallel Inspector」 』を参照してください。

動作環境

 Parallel Amplifierは以下の環境で動作します。なお、Visual Studio 2010には次回リリースで対応する予定となっており、現在Parallel Amplifierを使用しているユーザーおよび今後購入するユーザーはVisual Studio 2010に対応したバージョンを無償で入手できるようです。

Parallel Amplifierの動作環境
OS Windows XP,Windows Vista,Windows 7,Windows Server 2003,Windows Server 2008(各32ビット/x64エディションに対応)
開発環境 Visual Studio 2005 / 2008
開発言語 C/C++(ネイティブコードのみ。.NET用のマネージドコードは不可)

 Parallel Amplifierを含むParallel Studioの評価版が公開されており、30日間無償で体験することができます。評価版のダウンロード元はエクセルソフト社のWebページです。

 Parallel Studio評価版のダウンロードおよびインストールについては『インテル Parallel Studioを使って並列化プログラミングを試してみた』を参照してください。

 なお、本記事では、Windows XP SP3(32ビット版)、Visual Studio 2008を使って解説します。


  • LINEで送る
  • このエントリーをはてなブックマークに追加

著者プロフィール

  • 山田 祥寛(ヤマダ ヨシヒロ)

    静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for ASP/ASP.NET。執筆コミュニティ「WINGSプロジェクト」代表。 主な著書に「入門シリーズ(サーバサイドAjax/XMLD...

  • WINGSプロジェクト 土井 毅(ドイ ツヨシ)

    <WINGSプロジェクトについて> 有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。2017年5月時点での登録メンバは52名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂き...

バックナンバー

連載:インテルソフトウェア開発製品による並列化プログラミング
All contents copyright © 2005-2017 Shoeisha Co., Ltd. All rights reserved. ver.1.5