मैं वैश्विक वातावरण में परिभाषित नहीं किए गए किसी अन्य फ़ंक्शन के अंदर parLapply
का उपयोग करने का प्रयास कर रहा हूं। कार्यकर्ता फ़ंक्शन अन्य फ़ंक्शंस की सूची का उपयोग करता है जो मैं पहले से clusterExport
करना चाहता हूं, जो वैश्विक वातावरण में भी परिभाषित नहीं हैं। मेरी समस्या यह है कि दोनों कार्य क्लस्टर को अपने मूल्यांकन वातावरण निर्यात करते हैं, जो बहुत बड़े और आवश्यक नहीं हैं।क्लस्टर कैसे करें अपने मूल्यांकन वातावरण के बिना किसी फ़ंक्शन का निर्यात करें
हमें कार्यकर्ता फ़ंक्शन workerFunction
और फ़ंक्शन सूची functionList
पर कॉल करने दें।
workerFunction <- function(i) {
intermediateOutput <- functionList[[i]](y)
result <- otherCalculations(intermediateOutput)
return(result)
}
library(parallel)
cl <- makeCluster(detectCores())
environment(workerFunction) <- .GlobalEnv
environment(functionList) <- .GlobalEnv
clusterExport(cl, varlist=c("functionList", "y"), envir=.GlobalEnv)
output <- parLapply(cl, inputVector, workerFunction)
मैं:
Error in get(name, envir = envir) (from <text>#53) : object 'functionList' not found
अगर मैं environment(functionList) <- .GlobalEnv
सेट नहींं, तो functionList
की भारी संलग्न पर्यावरण समूहों को निर्यात किया जाता है। वैश्विक पर्यावरण में functionList
क्यों नहीं मिल सकता है?
बहुत बहुत धन्यवाद, क्लस्टर एक्सपोर्ट वास्तव में समस्या थी – Ronert