最終更新:
mikk_ni3_92 2008年05月29日(木) 17:36:07履歴
現在地 >> メニュー >> OpenMP >> OMP::基本編04::単純なループの並列化
ループの並列化の場合
[例]
#define NUM 100000
#pragma omp parallel for schedule(static) num_threads(4)
for(int i = 0; i < NUM;++i)
{
data[i] += 1000;
}
この場合、4スレッドをループ回数で割ったものがチャンクサイズとなる。
そして、それをスレッド毎に割り当てる。
つまり、
[チャンクサイズ] = NUM/4 = 25000
なので、
各スレッドには25000ずつ割り当てることになる。
ループの並列化の場合
- #pragma omp parallel for schedule(static)
[例]
#define NUM 100000
#pragma omp parallel for schedule(static) num_threads(4)
for(int i = 0; i < NUM;++i)
{
data[i] += 1000;
}
この場合、4スレッドをループ回数で割ったものがチャンクサイズとなる。
そして、それをスレッド毎に割り当てる。
つまり、
[チャンクサイズ] = NUM/4 = 25000
なので、
各スレッドには25000ずつ割り当てることになる。