CでOpenMP、パラレル内での共有変数の宣言方法
C言語でOpenMPを利用したとき、parallel構文内で、共有変数を宣言する方法はありますか?
OpenMPを利用して、スレッド並列にしたプログラムを書いています。
#pragma omp parallel
{
~~
~~
}
この、~~の部分で、大きく分けて二つの処理をしているので、関数に分けました。
#pragma omp parallel private( a, b, c, d, e, f, g, h, i, j )
{
func1( a, b, c, d, e, f, g, h );
func2( a, b, c, d, e, f, g, h, i, j );
}
このとき、2つ目の関数で共有変数を複数使う必要があります。
しかし、共有変数の数は多く、引数にするとかなりの数の引数になってしまいます。
そこで、できればfunc2()という関数の中で、スレッドで共有できるshared変数を宣言したいのですが、方法がわかりません。
どなたか、知っている方教えてください。
お礼
回答ありがとうございます。お礼が遅れて申し訳ありませんでした。