티스토리 뷰

언어/R

parallel

newlibra 2023. 4. 14. 23:37

# 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)

'언어 > R' 카테고리의 다른 글

R site  (0) 2023.12.16
stock price  (0) 2023.04.25
bond  (0) 2023.03.05
script  (0) 2023.02.20
sqlite3  (0) 2023.02.11
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
글 보관함