はじめに
この連載では、並列処理を高度に抽象化したインテルTBBを通じて、並列化の考え方を取得することを目的としています。今後、並列化は当たり前のものとなり、さまざまな形でサポートされることになります。並列化処理の根底に流れる考え方を身につければ、その変化に対応できます。
今回はインテルTBBのスレッドに関連する事柄について解説します。この連載のサンプルはあくまでもインテルTBBの使い方を説明するものであり、実務を特別に意識したものではありません。その点を御理解ください。
本記事の対象を超えるもの、記述箇所を特定しないもの、読者固有環境に起因するもの、読者の主義思想に関するもの、読者の誤解によるもの、社会人としてのマナーを欠いたものなどは質問/指摘を頂いてもお答えできません。あらかじめご了承ください。
対象読者
筆者が想定している読者はC++の基本的文法を理解し、並列化プログラミングに興味を持っている方です。高度なC++テクニックを極力さけ、基本的な文法さえ分かれば読めるように極力注意しますので、並列化に興味を持っている方はぜひこの連載に目を通してください。
必要な環境
C++コンパイラが必要です。お持ちでない方は無償で提供されているマイクロソフト社の「Visual Studio C++ 2010 Express Edition」をダウンロードするなどして入手してください。
この連載は基本的にWindows環境を想定して解説しますが、インテルTBBそのものは他のOS上でも動作しますので、適宜読み替えて参考にしてください。
そのほかに、インテルTBBを使うための準備が必要なので次項で解説します。
インテルTBBの準備
インテルTBBを使用する方法は2つあります。1つ目は「インテル Parallel Studio」を使用することです。インテル Parallel StudioはインテルTBBがあらかじめ用意されており、オプションを指定するだけでインテルTBBを使用できます。詳しくは『インテル Parallel Studioを使って並列化プログラミングを試してみた』(Codezine)を参照ください。
2つ目の方法は、オープンソース版のインテルTBBを公式ホームページからダウンロードし、ライブラリとインクルードファイルへのパスを指定することです。これからその手順を解説します。ただし、この記事は2010年6月に書かれたものであり、今後URLが変更される恐れがありますのでその点に注意してください。
まずは公式ホームページにアクセスし[Downloads]と書かれたタグを選択します。そして、[Stable Release]という見出しをクリックすると、インテルTBBのいくつかのバージョンが表示されます。今回は「tbb30_20100406oss」をクリックしてください。
ソースが欲しい方は、同画面にあるtbb30_20100406oss_src.tgzをダウンロードしてください。最後に「tbb30_20100406oss_win.zip」と書かれた右横にあるDownloadリンクをクリックしてください。これでオープンソース版インテルTBBのダウンロードは完了です。ダウンロード後は、好きな場所に解凍してください。
今度はVisual Studio C++ 2010 Express Editionでパスの設定を行います。最初に、[ツール]-[設定]-[上級者用の設定]をチェックしてください。
次に[表示]-[プロパティマネージャ]を選択してプロパティマネージャを表示します。そして、[Debug|Win32]を右クリックして表示されるメニューの中から、プロパティをクリックしてプロパティページを表示してください。プロパティページが表示されたら、[共通プロパティ]-[VC++ディレクトリ]をクリックしてください。
これでインクルードディレクトリが指定できます。この場面で、先ほどダウンロードして解凍したTBBのフォルダへのパスを指定します。例えば、Cドライブに解凍した場合「C:\tbb30_20100406oss\include」となります。次にライブラリディレクトリを「C:\tbb30_20100406oss\lib\ia32\vc10」のように指定してください。lib\ia32\の部分は、使用しているOSのビット数と一致させます。例えば、Windows7 32bit版ならばia32となります。この作業が終わったら「Releace|Win32」についても同様の作業を行ってください。
最後に、TBBのbinフォルダ(例:C:\tbb30_20100406oss\bin\ia32\vc10)下にある「tbb.dll」ファイルと、「tbb_debug.dll」ファイルをシステムフォルダ内(例:C:\Windows\System32)にコピーしてください。
以上で設定は完了です。これでインテルTBBを学習する準備が整いました。