Monday, October 3, 2016 5:00AM to 11:00AM (UTC) Schedouled down time to change site domain

 HPC/並列プログラミングポータルでは、HPC(High Performance Computing)プログラミングや並列プログラミングに関する情報を集積・発信しています。

新着トピックス

サンプルコードで知る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に付属するサンプルコードを例に、Parallel Studioの機能を使ってプログラムを並列化するステップを順に追って紹介していこう。

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

表1 Parallel Studioのディレクトリ構成
ディレクトリ含まれる内容
AmplifierParallel Amplifierのプラグインおよび関連ライブラリ
ComposerParallel Composerのプラグインおよび関連ライブラリ
InspectorParallel Inspectorのプラグインおよび関連ライブラリ
Samplesサンプルコード

Parallel Studioを使ってみる

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

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

1c0c1c59d7741b7beb5615170b63cd08.png
図2 nq_serialのアルゴリズム

 なお、Parallel Studioの評価版はエクセルソフトのWebサイトからダウンロードできる。今回使用しているサンプルも付属しているので、興味のある方はぜひダウンロードして手元でその効果を確認してほしい。