Можно запустить parLapply только с переменными clusterExport вместо функций окружения? - PullRequest
0 голосов
/ 20 января 2020

Моя проблема в том, что у меня много вложенных функций и упаковочных функций, и это приводит к появлению в clusterExport ошибки.

Минимальный код выглядит следующим образом:

paral<-function(){

      funk<-function(i,a,b,x1,x2,x3){ 
        c<-zusatz1(x1,x2)
        d<-zusatz2(x1,x3), silent = T
        d1<-d[[1]]

        return(mod(3,2)*a^d1+b*c)

      }
      numCores <- detectCores()
      cl <- makeCluster(numCores)      
      #clusterExport(cl=cl, varlist=c("zusatz1","zusatz2","zusatz3","mod"))    
      clusterExport(cl=cl, varlist=c("a","b","x1","x2","x3"))

      a<-3
      b<-4
      x1<-1
      x2<-1.2
      x3<-2

      ausd<-parLapply(cl,1:500000,funk,a,b,x1,x2,x3)
      stopCluster(cl)
      return(ausd)

    }
zusatz1<-function(x1,x2){

  return(x1*x2)
}  
zusatz2<-function(x1,x3){

  x1<-zusatz3(x1)

  return(list(x1/x3,x1+x3))
}

zusatz3<-function(x1){      
  return(x1) 
}

Этот код можно запустить только с:

clusterExport(cl=cl, varlist=c("a","b","x1","x2","x3"))

вместо

clusterExport(cl=cl, varlist=c("zusatz1","zusatz2","zusatz3","mod"))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...