मुझे आर में समांतर पैकेज के साथ काम करने के लिए कुछ कोड प्राप्त करने में समस्या आ रही है। मैं आर 2.15 का उपयोग कर रहा हूं।आर समांतर एस 4 वर्ग क्लस्टर त्रुटि
यहाँ एक सरल उदाहरण है ... मैं एक फ़ाइल 'animal.R' जो निम्नलिखित शामिल है:
# animal.R
setClass("Animal", representation(species = "character", legs = "numeric"))
##Define some Animal methods
setGeneric("count",function(x) standardGeneric("count"))
setMethod("count", "Animal", function(x) { [email protected]})
setGeneric("countAfterChopping",function(x) standardGeneric("countAfterChopping"))
setMethod("countAfterChopping", "Animal", function(x) { [email protected] <- [email protected]; [email protected]})
फिर, मेरी आर टर्मिनल में, मैं चलाएँ:
library(parallel)
source('animal.R')
प्रारंभ दो नोड्स के एक स्थानीय क्लस्टर:
cl <- makeCluster(rep('localhost', 2))
बताएँ पशु वर्ग के बारे में क्लस्टर नोड्स:
# This works
parSapply(cl, list(daisy, fred), count)
# This doesn't...
parSapply(cl, list(daisy, fred), countAfterChopping)
बंद करो क्लस्टर:
clusterEvalQ(cl, parse('animal.R'))
तब क्लस्टर पर कुछ कोड को चलाने
stopCluster(cl)
parSapply करने के लिए पहली कॉल की उम्मीद काम करता है के रूप में है, लेकिन दूसरा यह त्रुटि पैदा करता है:
Error in checkForRemoteErrors(val) :
2 nodes produced errors; first error: "Animal" is not a defined class
कोई विचार क्या चल रहा है? समान रूप से काम करने के लिए दूसरी कॉल क्यों नहीं है?
जब आप 'animal.R parse', आप एक unevaluated अभिव्यक्ति मिलता है, तो आप या तो इस्तेमाल कर सकते हैं' clusterEvalQ (सीएल, eval (पार्स ('animal.R '))) या सिर्फ स्क्रिप्ट स्रोत। क्या यह चाल है? – BenBarnes
आह, हाँ ... ऐसा लगता है कि चाल चल रही है। बहुत बहुत धन्यवाद! – Ash