Мне нужно запустить несколько симуляций моделей. Я пытаюсь запустить разные симуляции на разных ядрах и сохранить результаты в глобальной среде. У меня есть код ниже, который не работает. Например, мне нужно запустить xgboost три раза (с теми же параметрами, только 3 повторных запуска, и я хочу запустить три симуляции на разных ядрах и вернуть imp_df_i в глобальный env.
cores=detectCores()
cl <- makeCluster(cores[1]-1) #not to overload your computer
registerDoParallel(cl)
finalMatrix <- foreach(i=1:3, .combine=cbind) %dopar% {
require(xgboost)
xgb_1 = xgboost(dtrain,
params = xgb_params_1,
nrounds = 3, # max number of trees to build
verbose = TRUE,
print_every_n = 1,
early_stop_round = 10) # stop if no improvement within 10 trees
col_names = attr(tr.x, ".Dimnames")[[2]]
imp = xgb.importance(col_names, xgb_1)
imp_df=data.frame(imp)
assign(paste("imp_df",i, sep = "_"),imp_df,envir = .GlobalEnv )
}
#stop cluster
stopCluster(cl)