ソース表示: サンプルコードで知るParallel_Studioの並列化機能_p1 #49727

[[PageNavi(NavigationList)]]

== サンプルコードで知るParallel Studioの並列化機能 ==




 「インテル Parallel Studio」はマルチスレッドやOpenMPなどを使用した、並列処理を行うプログラムの開発を支援するツールである。本記事では、Parallel Studioに含まれる並列化機能や強力な最適化機能、並列化関連ライブラリ、デバッガ、プロファイラといった機能や、使い方の例などを紹介していく。


 Parallel Studioは、「インテル Parallel Composer」(以下、Parallel Composer)および「インテル Parallel Inspector」(以下、Parallel Inspector)、「インテル Parallel Amplifier」(以下、Parallel Amplifier)という3つのコンポーネントと、今後追加が予定されている「インテル Parallel Advisor」から構成されている開発ツールだ。詳細については[マルチコア時代の新開発ツール「インテル_Parallel_Studio」_p1 別記事]で詳しく解説を行っているが、プログラムの並列化を行うために有用な並列化機能や強力な最適化機能、並列化関連ライブラリ、デバッガ、プロファイラといった機能が含まれている。これらがどのようなものなのか、またどのようなことができるのか、興味を持っているユーザーも多いだろう。そこで本記事では、Parallel Studioに付属するサンプルコードを例に、Parallel Studioの機能を使ってプログラムを並列化するステップを順に追って紹介していこう。


 なお、Parallel StudioはVisual Studioのプラグインとしてインストールされるが、コンパイラやリンカなどはコマンドラインからも利用できる。これら実行ファイルやドキュメントなどは、デフォルトではProgram Filesフォルダ以下の「Intel\Parallel Studio」ディレクトリ以下にインストールされる。ディレクトリ構成は下記の'''表1'''のとおりだ。それぞれのディレクトリ以下のbin\以下に実行ファイルおよび関連DLLが、lib\以下にライブラリが、include\以下にヘッダファイル等が含まれるほか、各種ドキュメントやサンプルなども用意されている。
{{{ html
<h6>表1 Parallel Studioのディレクトリ構成</h6>
<table class="wikitable" border="1">

<tr><th>ディレクトリ</th><th>含まれる内容</th></tr>
<tr><td>Amplifier</td><td>Parallel Amplifierのプラグインおよび関連ライブラリ</td></tr>
<tr><td>Composer</td><td>Parallel Composerのプラグインおよび関連ライブラリ</td></tr>
<tr><td>Inspector</td><td>Parallel Inspectorのプラグインおよび関連ライブラリ</td></tr>
<tr><td>Samples</td><td>サンプルコード</td></tr>

</table>
}}}
====== Parallel Studioを使ってみる ======


 Parallel StudioはVisual StudioのIDEに統合されるため、Visual Studioを利用して開発しているソフトウェアであれば、非常に簡単に利用できる。以下ではParallel Studioに付属しているサンプル「NQueens」で、Parallel Studioの利用例を紹介しよう。


 NQueensは、ボードゲームのチェスをベースにした問題であり、N×Nサイズのチェス盤上に、お互いに駒を取られないような位置にN個のクイーンを配置するパターンが何通りあるかを求めるものである('''図1''')。サンプルコード(nq_serial.cpp)では、'''図2'''のようなアルゴリズムで解法を求めており、引数に盤面のサイズおよび配置するクイーンの数を指定する数値Nを与えてプログラムを実行すると、配置パターン数が計算される。
[[Thumb(728a7fbfb1cb0ac84d98ea362744669b.png, caption=図1 N=4の場合のN-Queensの回答例。今回のサンプルプログラムは、このようなパターンが何通りあるかを求めるものである)]]

[[Thumb(1c0c1c59d7741b7beb5615170b63cd08.png, caption=図2 nq_serialのアルゴリズム)]]



 なお、Parallel Studioの評価版は[http://www.xlsoft.com/jp/products/intel/parallel/download.html?sfwiki エクセルソフトのWebサイト]からダウンロードできる。今回使用しているサンプルも付属しているので、興味のある方はぜひダウンロードして手元でその効果を確認してほしい。


[[PageNavi(NavigationList)]]