티스토리 뷰
# Generate data
data <- 1:1e9
data_list <- list("1" = data,
"2" = data,
"3" = data,
"4" = data)
# Single core
#time_benchmark <- system.time(lapply(data_list, mean))
library(parallel)
# Detect the number of available cores and create cluster
cl <- parallel::makeCluster(detectCores())
# Run parallel computation
time_parallel <- system.time(
parallel::parLapply(cl,
data_list,
mean)
)
# Close cluster
parallel::stopCluster(cl)
#foreach
library(doParallel)
library(parallel)
library(foreach)
data <- 1:1e9
data_list <- list("1" = data,
"2" = data,
"3" = data,
"4" = data)
# Detect the number of available cores and create cluster
cl <- parallel::makeCluster(detectCores())
# Activate cluster for foreach library
doParallel::registerDoParallel(cl)
time_foreach <- system.time({
r <- foreach::foreach(i = 1:length(data_list),
.combine = rbind) %dopar% {
mean(data_list[[i]])
}
})
time_foreach[3]
# Stop cluster to free up resources
parallel::stopCluster(cl)