c++ - OpenMP, calling global variables, through functions -
निम्न कोड को लागू करते समय:
डिफ़ॉल्ट के लिए #pragma omp समानांतर (साझा) निजी (आरएक्स, आरआई, ए, एक्सएमएक्स, वाईमेक्स) के लिए (ए = 0; एक & lt; 30000; ए ++) {int mn, mnn; MN = part.i; MNN = part.j; सेटअप (एम.एन., MNN, एक); } फ़ंक्शन सेटअप वैश्विक वैरिएबल आरएक्स, आरआई, एक्समेक्स, और वाईमैक्स का उपयोग करता है। क्या खुले एमपी का नोटिस निजी के रूप में घोषित किया जा सकता है? या फिर क्या होता है यदि ग्लोबल वैरिएबल को फ़ंक्शन में बुलाया जाता है जो एक लूप में मौजूद होता है?
उपयोग किए जाने वाले वैश्विक चर फ़ंक्शन में तब तक साझा किया जाएगा जब तक आप थ्रेडस्वाइवेट का उपयोग नहीं करते हैं तो rx, ry, xmax, ymax निजी नहीं होगा यदि आप उन्हें फ़ंक्शन में कहते हैं, जब तक कि आप threadprrivate का उपयोग नहीं करते हैं निम्न कोड को बिना और बिना थ्रेड के प्रयास करें और परिणाम देखें।
#include & lt; stdio.h & gt; Int x; // # प्रोगा ओम्पर थ्रेडप्राइवेट (एक्स) void foo () {printf ("% p \ n", & amp; x); } Int main () {// # pragma omp समानांतर #pragma omp समानांतर निजी (x) {printf ("% p \ n", & amp; x); foo (); }} "किसी क्षेत्र में संदर्भित वेरिएबल्स के लिए डेटा-साझा करने के लिए विशेषता नियम, लेकिन किसी निर्माण में नहीं" के अंतर्गत देखें
फ़ाइल-क्षेत्र या नामस्थान- क्षेत्र में कहा गया दिनचर्या में संदर्भित गोलाकार वेरिएबल्स साझा किए जाते हैं जब तक वे किसी थ्रेडप्राइवेट डायरेक्टिव में दिखाई नहीं देते।
Comments
Post a Comment