現在地 >> メニュー >> OpenMP >> OMP::基本編06::2重ループの並列化


OpenMP::2重ループの並列化


2重ループの並列化の時は、
どのループ変数を共有変数にするかに注意する。

何も設定しない場合、OpenMPでは、
  • 2重ループの内側の変数が共有変数
となる。

[例]

#define NUM 100

#pragma omp parallel for
for(y = 0; y < NUM; ++y)
{
for(x = 0; x < NUM;++x) //xが共有変数である
{
 ... ...
}
}



共有変数、ローカル変数の設定


ループ内の変数をローカルなものにするか、共有なものにするかは、

  • private()
  • shared()

で指定する


[例]

#define NUM 100

#pragma omp parallel for private (x)
for(y = 0; y < NUM; ++y)
{
for(x = 0; x < NUM;++x) //xはローカル変数である
{
 ... ...
}
}



サンプルコード → OMP::2重ループ

目次

― その他 ―

Wiki内検索

計測中...(07.10.8〜)

Save The World






▲よろしければ広告のクリックもお願いします


▲ランキングに参加しました

管理人/副管理人のみ編集できます