SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

特集記事

手軽に並列化を実現する「インテルParallel Studio」の魅力

Visual Studio C++プログラマーの並列化実装を大きく手助け


「インテルParallel Studio」を構成するツール

 インテルParallel Studioは、今回のリリースで3つのツールから構成されている。コンパイラ・ライブラリの「インテルParallel Composer」、デバッガー・エラー/メモリーチェッカーの「インテルParallel Inspector」、アナライザー・プロファイラーの「インテルParallel Amplifier」だ。

 3つのツールそれぞれが、ソフトウェアの開発サイクルにおける「コーディング」「検証・検知」「チューニング」の各フェーズに対応している。これらを組み合わせることで、並列化を開発の全工程において並列化を網羅的に実現できる。

4つ目のツール「インテルParallel Advisor」

 もうひとつ開発サイクルの重要なフェーズとして「デザイン・設計」がある。これは後発のツール「インテルParallel Advisor」で対応される予定だ。インテルParallel Advisorでは、ソースコードのどこを並列化すればいちばん良い効果が得られるかを特定し、エンジニアにアドバイスしてくれる。もちろん、インテルParallel Studioを購入していれば、インテルParallel Advisorも後から入手し、利用することが可能だ。

インテルParallel Composer - コンパイラ・ライブラリ

 「インテルParallel Composer」では、ハイエンド向け製品をベースにしたC/C++コンパイラに、「IPP(インテグレーティッド・パフォーマンス・プリミティブ)」ライブラリがバンドルされている。また、並列化の標準仕様「OpenMP」もサポートしており、簡単にその機能を利用できる。

 プリデファインされたテンプレートライブラリ「インテルTBB(スレッディング・ビルディング・ブロック)」も含まれている。並列化済みのライブラリであり、プロセッサのコア数を認識させ、必要な数だけ並列化させるといった処理を、テンプレートとして利用できる。

 このようにOpenMPを利用したり「テンプレートに並列化してもらう」ことで、書かなければいけないコードの量は圧倒的に少なくてすむ。開発者は、実務のロジックに注力することができるだろう。

【インテルParallel Composer】コンパイラー、ライブラリー、並列デバッガー拡張機能の組み合わせにより、アプリケーションのマルチスレッド化をより簡単・迅速に実現する。
【インテルParallel Composer】コンパイラー、ライブラリー、並列デバッガー拡張機能の組み合わせにより、アプリケーションのマルチスレッド化をより簡単・迅速に実現する。並列処理用のC++テンプレート「インテル スレッディング・ビルディング・ブロック(インテルTBB)」や、マルチコア対応の汎用ライブラリ「インテル インテグレーテッド・パフォーマンス・プリミティブ(インテルIPP)」も含まれる。

インテルParallel InspectorとインテルParallel Amplifier

 「インテル Parallel Inspector」は、スレッド化特有のエラーを検出する「インテル・スレッド・チェッカー」をベースにしている。並列化に特有なスレッド化のエラーをチェックする機能に加え、新しくメモリチェックの機能を備え、メモリリークやさまざまな問題を検出できる

【インテルParallel Inspector】バグ検出のためのツールでスレッド化エラーやメモリエラーを静的・動的に解析する。Visual Studioを完全に統合し、快適なデバッグ環境を実現。特にメモリー検証を実装した競合ツールに比べて非常に低価格で提供されている。
【インテルParallel Inspector】バグ検出のためのツールでスレッド化エラーやメモリエラーを静的・動的に解析する。Visual Studioを完全に統合し、快適なデバッグ環境を実現。特にメモリー検証を実装した競合ツールに比べて非常に低価格で提供されている。

 「インテルParallel Amplifier」は、チューニング用のツール「VTuneパフォーマンス・アナライザー」をベースに、より簡単に使えるよう作られている。パフォーマンスのホットスポットやボトルネックを検出したり、正しく並列化されているかどうかをチェックできる。

【インテルParallel Amplifier】並列アプリケーション向けに設計されたプロファイラーツール。マルチコア化した際のボトルネックを分析し、視覚的に表現することができるため、効率よく最適化を行える。
【インテルParallel Amplifier】並列アプリケーション向けに設計されたプロファイラーツール。マルチコア化した際のボトルネックを分析し、視覚的に表現することができるため、効率よく最適化を行える。

事例:どのくらい簡単に効果を得られるか?

 インテルParallel Studioはまだβテスト段階だが、公開してわずか4か月で、実際にパフォーマンスが向上したという事例がたくさん報告されている。たとえば、金融系の「Trading System Lab」では、Composerを使って金融系のトレーディング・アプリケーションで10~20%のパフォーマンス向上を達成したという。

 また、「インテルParallel Amplifier」を利用すれば、並列化しやすいところ、良い効果が得られるところに集中できる。あまり開発期間をかけず、並列化のアドバンテージを手軽に得ることができる。

 ヒューストン大学のバイオケミカルグループでは、インテルParallel Amplifierでボトルネックを発見でき、そこを改善したところ10倍のパフォーマンス向上があった。この数字は極端だが、「Open Cascade」というアプリケーションでも、同じように2倍の向上が見られたという。

並列化手法の習得サポート

 インテルでも、「インテルParallel Studio」を利用してすぐに効果が得られるよう、サポートとしてウェブ上にさまざまなリソースを掲載している。並列化のエキスパートではないエンジニアに対しても、ホワイトペーパーや「ビデオシリーズ」、あとは「ウェビナー」(ウェブ上のセミナー)などを提供している。ビデオシリーズは日本語でも提供されているので、ぜひ見てみるとよいだろう。

 さらにコミュニティベースのサポートも用意されている。ユーザーのフォーラムがすでにオープンし、インテルのエンジニアがユーザーからの質問に回答している。また、並列化に関する情報を集めた「Go Parallel」というサイトもあり、世界中のユーザーが活用方法やQ&A情報を交換している。メインストリームの開発者がターゲットだけに、こういったユーザーコミュニティもたいへん盛り上がることが期待される。ぜひ日本のユーザーにも広まってほしいフォーラムだ。

SEshopでキャンペーンを実施中(8/7まで)

 インテル社が実施する「インテルParallel Studioベータプログラム」に参加した顧客を対象に、新製品を特別価格で購入できる「先行予約キャンペーン」を、5月26日まで実施している。

 先行予約キャンペーンは2009年5月26日付けで終了いたしました。たくさんのご参加ありがとうございました。

 

 引き続き、通常版は特別版として定価よりお得な価格で購入いただけるキャンペーンが2009年8月7日まで開催されています。詳しくは下記のリンク先(SEshop)をご参照ください。

修正履歴

この記事は参考になりましたか?

連載通知を行うには会員登録(無料)が必要です。
既に会員の方はを行ってください。
特集記事連載記事一覧

もっと読む

この記事の著者

モーリ・タロー(モーリ・タロー)

フリーダムなIT系編集者・ライター90年代半ばからIT系書籍編集者として『FreeBSD徹底入門』『ウェブログ入門』『教科書には載らないニッポンのインターネットの歴史教科書』などを手がける。2008年に独立し、現在はソーシャルメディア、オープンソース関連を中心に執筆活動を行う。hatena: http://www.hatena.ne.jp/mohritwitter: http://twitter.com/mohriFacebook: http://www.facebook.com/imkt5l

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/3915 2009/05/27 12:23

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー