プロジェクトに OpenMP と Visual Studio 2008 を使用しています。関数に並列 for ループがあり、並列領域でこの並列 for の外で定義されている変数を更新したいと考えています。並列領域の後で値を使用できるようにしたいので、lastprivate() 句で変数を宣言しました。しかし、並列領域の実行後、変数の値を取得できません。以下は私のコードです:
vector<string> resultParamsNames;
int count = 0;
#pragma omp parallel for private(s,s_fa,measR1Value,c) firstprivate(count,paramNamesSet) lastprivate(resultParamsNames, count)
for(int i = 0; i < 20; i++)
{
fitModel(model, t, c, inputFunctions, at, dt, resultParams, resultParamsNames, fittedCurve);
}
ここで、「resultParamsNames」は、並列領域で更新している変数です。並列領域外でこの変数の値を取得するにはどうすればよいですか?
ありがとう、ラケシュ。