2015年5月31日日曜日

1 minute intro: Intel TBB parallel_for (C++)

TBB(Threading Building Blocks)は C++で並列化プログラムを簡単に記述するためのライブラリである。Intelが基本的な関数の使い方のビデオを公開している。以下はparallel_forのもの。機械学習のコードで大変よく登場する。


コードは以下である。
Threading Building Blocks
//
// tbb_intro.cpp
// CplusplusPractice
//
// Created by masai on 2015/05/31.
// Copyright (c) 2015年 masai. All rights reserved.
//
#include <iostream>
#include <cmath>
#include <tbb/tbb.h>
double *output;
double *input;
int main(){
const int size = 20000000;
output = new double[size];
input = new double[size];
for(int i = 0; i < size; ++i){
input[i] = i;
}
tbb::parallel_for(0, size, 1, [=](int i){
output[i] = sqrt(sin(input[i]*sin(input[i]) + cos(input[i])*cos(input[i])));
}
);
return 0;
}

0 件のコメント:

コメントを投稿