रैंडम नंबर और मल्टीकोर पैकेज


15

आर में प्रोग्रामिंग करते समय, मैंने कुछ बार मल्टीकोर पैकेज का उपयोग किया है । हालाँकि, मैंने कभी इस बारे में एक बयान नहीं देखा कि यह कैसे यादृच्छिक संख्याओं को संभालता है। जब मैं सी के साथ ओपनएमपी का उपयोग करता हूं, तो मैं एक उचित समानांतर आरएनजी का उपयोग करने के लिए सावधान हूं, लेकिन आर के साथ मुझे लगता है कि कुछ समझदार होता है। क्या कोई पुष्टि कर सकता है कि कुछ समझदार है?

उदाहरण

प्रलेखन से, हमारे पास है

x <- foreach(icount(1000), .combine = "+") %do% rnorm(4)

कैसे rnormउत्पन्न होते हैं?

जवाबों:


8

मैं नहीं यकीन है कि कैसे कर रहा हूँ foreachकाम करता है (doMC पैकेज से, मुझे लगता है), लेकिन मल्टीकोर में आप की तरह कुछ किया है, तो पैरामीटर सामान्य पर जो प्रत्येक प्रक्रिया एक अलग बीज देता है (उदाहरण के लिएmclapplymc.set.seedTRUEmclapply(1:1000, rnorm) )। मुझे लगता है कि आपके कोड का अनुवाद कुछ इसी तरह किया गया है, यानी यह उन कॉलों को उबालता है parallelजिनमें समान सम्मेलन होता है।

लेकिन चार्ली गेयर द्वारा स्लाइड्स के पेज 16 को भी देखें , जो सैद्धांतिक गारंटी के साथ समानांतर स्वतंत्र धाराओं के लिए rlecuyer पैकेज की सिफारिश करता है । विभिन्न सेटअपों के लिए Geyer के पेज में R का नमूना कोड भी है।


7

आप इस पेज की 5 को देखने के लिए चाहते हो सकता है दस्तावेज़ और इस के दस्तावेज़ । डिफ़ॉल्ट रूप से, आर के तहत, प्रत्येक कोर सेट खुद का बीज है (मैं उच्च परिशुद्धता समय का उपयोग करके याद करता हूं)।

NB: यदि आप विंडोज़ के तहत रिवॉल्यूशन-कंप्यूटिंग से फ़ॉरच्यू () का उपयोग करते हैं तो मुझे संदेह है कि कुछ समझदार नहीं होगा। विंडोज POSIX का अनुपालन नहीं है, और जब प्रत्येक कोर को एक अलग उच्च गति की आवश्यकता होती है, तो यह समस्याएं पैदा करनी चाहिए। शुरू करने का समय बीज है (दुर्भाग्य से मेरे पास विंडोज़ काम नहीं है इसलिए मैं इस अनुभव की जांच नहीं कर सकता)।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.