क्या बर्फ पैकेज में clusterEvalQ
और clusterExport
के समान एक डूएसएमपी क्लस्टर शुरू करने का कोई तरीका है? उदाहरण के लिए:आप कर्मचारियों को डीएसएमपी के साथ कैसे शुरू कर सकते हैं?
x <- 1:10
y <- 10:1
z <- rnorm(10)
cl <- makeSOCKcluster(2)
clusterEvalQ(cl, library(quantmod))
clusterExport(cl, list("x","y","z"))
clusterEvalQ(cl, ls())
clusterEvalQ(cl, search())
doSMP के लिए एक initEnvir
विकल्प नहीं है, लेकिन ?doSMP
कहते
‘initEnvir’ is a function to be executed by each worker before any tasks are executed associated with a foreach. Its purpose is to initialize the execution environment, or the worker in general. It is only executed by a worker if that worker executes at least one task associated with the foreach.
प्रत्येक कार्यकर्ता आदेश अभिव्यक्ति मैं करने के लिए भेजने के चलाने के लिए कई बड़ी वस्तुओं की एक प्रति की जरूरत है foreach
। इसके अतिरिक्त, मुझे इन बड़ी वस्तुओं के समान संस्करणों के साथ foreach
कई सौ बार कॉल करने की आवश्यकता है। इन ऑब्जेक्ट्स को प्रत्येक कॉल के लिए foreach
पर प्रतिलिपि बनाना अक्षम होगा।
भले ही ऐसा करने के लिए तैयार तरीके न हो, मैं एक कड़वाहट की सराहना करता हूं।
मैंने सोचा था कि आधार वातावरण है, जो नकल करने की आवश्यकता नकारना होगा करने के लिए उपयोग किया गया था। या क्या मैं कुछ न कुछ भूल रहा हूं? – Iterator
बस उत्सुक है कि आप बर्फ के बजाय डीओएसएमपी के साथ क्यों कार्यान्वित कर रहे हैं? मुझे बर्फ अधिक स्थिर और पोर्टेबल पाया गया है। – darckeen
@ डेर्किन: मैं doSMP के साथ _only_ लागू नहीं कर रहा हूं। मैं उपयोगकर्ताओं के लिए डीओएसएमपी सहित जो कुछ भी फ़ोरैच बैकएंड चुनता हूं, उन्हें नियोजित करने के लिए विकल्प बना रहा हूं। –