Я хочу смоделировать данные и одновременно выполнить анализ этих данных 10000 раз.Поэтому я использовал цикл for в R, чтобы повторить работу 10000 раз.Теперь я хочу распараллелить эту задачу.Для которого я следовал следующим кодам:
library(parallel)
library(doSNOW)
cl <- makeSOCKcluster(3)
registerDoSNOW(cl)
progress <- function(n) cat(sprintf("task %d is complete\n", n)) # to check the progress of the work
setno<- data.frame(sample_no=c(1:10000))
no_of_samples<- unique(setno$sample_no)
simulated_data_list <- vector("list",length(no_of_samples))
analysis_result <- numeric(length(simulated_data_list ))
foreach(i=1:10000,progress)%dopar%{
tryCatch({
simulated_data_list[[i]]<- rnorm(100)# suppose we are simulating data
analysis_result[[i]] <- 1-pnorm(simulated_data_list[[i]][1])
},error=function(e){cat("ERROR:",conditionMessage(e),"\n")})
}
Но каждый раз, когда я делаю это, я обнаруживаю, что программа не симулирует данные (в программном коде нет проблем, поскольку он работает нормально без распараллеливания).Я не могу понять, где проблема в приведенном выше коде.Можете ли вы предложить лучший способ сделать эту работу?