1
아래 샘플 코드에서 foreach 및 doParallel을 사용하고 있습니다. 내가 envir = .GlobalEnv를 사용할 때 clusterExport의 envir 인수에 전역 및 기능 환경의 개체를 클러스터로 내보내기
library(foreach)
library(doParallel)
clusters = makeCluster(4)
registerDoParallel(clusters)
fun1 <- function(param1, param2, param3)
{
param4 = param1+param2
param5 = param2+param3
param6 = param3+param1
print(ls(envir = environment()))
print(ls(envir = .GlobalEnv))
# clusterExport(cl = clusters, varlist = ls(), envir = environment())
clusterExport(cl = clusters, varlist = ls(), envir = .GlobalEnv)
mmm = foreach(i = 1:length(param1), .combine = rbind) %dopar% fun2(i, param4, param5, param6)
print(mmm)
}
fun2 <- function(i, param4, param5, param6)
{
j = param4[i] * param5[i] * param6[i]
}
param1 = 1:10
param2 = 2:11
param3 = 3:12
fun1(param1, param2, param3)
는, 나는 오류
**"Error in get(name, envir = envir) : object 'param4' not found"**
를 얻을.
내가 envir를 사용할 때 = 환경()이 오류가
**"Error in fun2(i, param4, param5, param6) : task 1 failed - "could not find function "fun2"""**
내 문제는 내가 클러스터에 모든 세계에있는 객체뿐만 아니라 기능 환경을 내보낼 수 있습니다 방법이다.