Boost」など、さまざまなカンファレンスを企画・運営しています。BOOKS(コードジン・ブックス)は、CodeZineの連載からカットアップした、開発現場の課題解決に役立つ書籍シリーズです。MB)本連載では、C++プログラムで並列処理を行うアプローチを提供するテンプレートライブラリ「インテルスレッディング・ビルディング・ブロック」(インテルTBB)について解説します。今回はインテルTBBのアルゴリズムテンプレートとループの並列化を説明します。書籍Webサイトはじめにこの連載では、並列処理を高度に抽象化したインテルTBBを通じて、並列化の考え方を取得することを目的としています。今後、並列化は当たり前のものとなり、さまざまな形でサポートされるようになります。並列化処理の根底に流れる考え方を身につければ、その変化に対応できます。今回はインテルTBBのアルゴリズムテンプレートとループの並列化について解説します。この連載のサンプルはあくまでもインテルTBBの使い方を説明するものであり、実務を特別に意識したものではありません。その点をご理解下さい。筆者が想定している読者はC++の基本的文法を理解し、並列化プログラミングに興味を持っている方です。高度なC++テクニックを極力さけ、基本的な文法さえ分かれば読めるように極力注意しますので、並列化に興味を持っている方はぜひこの連載に目を通して下さい。必要な環境C++コンパイラが必要です。Edition」をダウンロードするなどして入手して下さい。この連載は基本的にWindows環境を想定して解説しますが、インテルTBBそのものは他のOS上でも動作しますので、適宜読み替えて参考にして下さい。その他に、インテルTBBを使うための準備が必要ですので次項で解説します。インテルTBBの準備インテルTBBを使用する方法は2つあります。Studio」を使用することです。StudioはインテルTBBがあらかじめ用意されており、オプションを指定するだけでインテルTBBを使用することができます。Studioを使って並列化プログラミングを試してみた』(CodeZine)を参照して下さい。2つ目の方法は、オープンソース版のインテルTBBを公式ホームページからダウンロードしてきて、ライブラリとインクルードファイルへのパスを指定することです。これからその手順を解説します。この記事は2009年10月に書かれたものであり、今後URLが変更される恐れがありますのでその点に注意して下さい。公式ホームページにアクセスし、「Downloads」と書かれたタブを選択します。Release」という見出しをクリックすると、インテルTBBのいくつかのバージョンが表示されます。ここでは「tbb22_20090809oss」を選択し、クリックするものとして話を進めます。画面下部の「tbb22_20090809oss_win.zip」と書かれた右横にある[Download]リンクをクリックすると、ダウンロードが始まります。ダウンロード後は、好きな場所に解凍して下さい。Studio(以下、VS)でパスの設定を行います。[ツール]-[オプション]-[プロジェクトおよびソリューション]-[VC++ディレクトリィ]を選択すると、「ディレクトリィを表示するプロジェクト」という項目があるので、そこでインクルードファイルを選択してから、先ほどダウンロードしたインテルTBBのパスを追加します。Cドライブに解凍したと仮定するとパスは「C:\tbb22_20090809oss\include」になります。このパスを追加したら、同様にして「ライブラリ」と「ソースコード」のパスを追加して下さい。以上で設定は完了です。これでインテルTBBを使う準備が整いました。parallel_forについてインテルTBBで一番理解しやすく使いやすいのはparallel_forテンプレートです。サンプルを掲載しますので、使い方を見て下さい。後から丁寧にparallel_forテンプレートについて説明を行います。売上明細で算出するべき項目を【直列で】計算します。売上明細で算出するべき項目を【並列で】計算します。