Parallel Studioが備える並列処理システム開発補助機能
実際のシステム開発で並列処理を適用する場合、大まかに言うと開発ソフトに2つの機能が必須です。
1つ目はプロファイル機能です。システムは並列が向く処理と向かない処理がありますので、すべてを闇雲に並列化してはなりません。ですから、どの処理を並列化すればよいのかや、どこがボトルネックになっているのかを判断するためにプロファイル機能が必要となります。また、既存の資産を改良する場合にも役立ちます。
2つ目は並列処理専用のデバッグ機能です。実際のシステムが正常に動作するには、デバッグを何回も行わなくてはなりません。しかし、並列処理は一度に複数のプログラムが同時に作動しますので、シングルコアのプロセッサ用プログラムよりも処理が複雑化しデバッグが難しくなります。そこで、開発ソフトには並列処理に特化したデバッグ支援機能が必要となるのです。
幸いParallel Studioにはこの2つの機能が備わっています。Parallel Studioは、インテル Parallel Composer、インテル Parallel Inspector、インテル Parallel Amplifierの3つで構成されています。先ほど紹介したサンプルは、「インテル Parallel Composer」を使用して作りました。後の2つの機能がプロファイラ機能と、並列処理のデバッグ支援機能を持っています。今回は詳しくは説明できませんが、簡潔にこれらの機能を解説します。
「インテル Parallel Inspector」は並列処理のデバッグ支援に関する複数の機能を持っています。具体的には、マルチコアが同時にメモリーに読み書きすることにより起こる厄介なエラーを解決するために「スレッド化エラーチェック機能」があります。他にもマルチスレッドで発生するエラーを解決するために、スレッドが競合している部分を特定する機能などがあります。これらの機能は、並列処理で起こる数々の問題を解決するに非常に役立ちます。
「インテル Parallel Amplifier」は、プロファイルに関する複数の機能を持っています。具体的には、ロックによるパフォーマンス劣化/問題を検出するための「ロック/待ち分析機能」、並列処理によるパフォーマンスを詳細にチェックする「コンカレンシー分析機能」などがあります。これらの機能は、システムのパフォーマンスを効率よく向上させるのに非常に役立ちます。
説明を文章で読むと複雑そうに感じるでしょう。ですが、これらの機能はすべてグラフィカルに表示され、マウスで簡単に操作できますので、並列処理についてのパフォーマンスチューニング、およびデバッグについて熟練していない方でも比較的容易にできます。また、熟練者の方でもより一層効率よく作業できるでしょう。
まとめ
この記事では、始めにシステム開発において並列処理を考慮することが必須であることを述べ、それをサポートするテクノロジーがあることを解説しました。そして、Parallel Studioが並列処理で開発を行うのに適した機能を持っていることを紹介しました。
今回は駆け足での紹介となりましたので、Parallel Studioの機能をほんの一部しか紹介できませんでした。ですから、皆様は実際に評価版をダウンロードして、使ってみるとよいでしょう。我々を取り巻く環境は激変し、並列処理が当たり前のものとなる日は近いと思いますので、今から近い将来に向けて準備をしておくことをお勧めします。
参考資料
- 『インテルスレッディング・ビルディング・ブロック』 James Reinders 著、菅原清文 監修、エクセルソフト株式会社 訳、オライリー・ジャパン、2008年2月
- XLsoft Home