1
我不明白如何將全局定義的類傳遞給使用並行程序包生成的集羣。我有工作了一個功能:R全局並行編程定義S4類
funs = "testClass"
fun = function(x) testClass(test = x^2)
testClass = function(test) return(test)
cl <- parallel::makeCluster(2, outfile='')
parallel::clusterExport(cl = cl, varlist = funs, envir = globalenv())
res <- parallel::parLapply(cl = cl, X = seq_len(10L), fun = fun)
parallel::stopCluster(cl)
res
同樣的方法不適合一類工作:
funs = "testClass"
fun = function(x) testClass(test = x^2)
testClass = setClass("testClass", slots = c(test = "numeric"))
cl <- parallel::makeCluster(2, outfile='')
parallel::clusterExport(cl = cl, varlist = funs, envir = globalenv())
res <- parallel::parLapply(cl = cl, X = seq_len(10L), fun = fun)
parallel::stopCluster(cl)
我知道這是可能把類和發電機功能的包裝,但有這個問題更簡單的解決方案?
您的代碼不起作用。什麼是「樂趣」和「樂趣」? –
對於兩個代碼塊來說,樂趣和樂趣是相同的。更新爲清晰。 –