मैंने लूप को समानांतर करने के लिए मौजूदा कोड बेस में ओपनएमपी जोड़ा है। कई चर parallel for
क्षेत्र के दायरे के अंदर बनाई गई हैं, एक सूचक सहित:ओपनएमपी समांतर वर्गों में पॉइंटर्स निजी हैं?
#pragma omp parallel for
for (int i = 0; i < n; i++){
[....]
Model *lm;
lm->myfunc();
lm->anotherfunc();
[....]
}
परिणामी आउटपुट फ़ाइलें मैं विसंगतियों, शायद एक रेस स्थिति की वजह से देखा है। मैंने अंततः omp critical
का उपयोग करके दौड़ की स्थिति का समाधान किया। मेरा प्रश्न बनी हुई है, यद्यपि: lm
प्रत्येक थ्रेड के लिए निजी है, या इसे साझा किया गया है?
जवाब के लिए धन्यवाद। Spec पढ़ने से, यह _seemed_ जैसा कि मामला था, लेकिन यह थोड़ा अस्पष्ट था। – argoneus