Articles

Affichage des articles du novembre, 2018

A parallelized version of for loop

# A general procedure for parallelized for loop # Even with 4 cores, the gain is interesting # Let take this example A <- 1:10000 system.time({ out <- NULL for (i in A) {   # I do something with i, an element of A   # this part must be copied   j <- sqrt(i)   out <- c(out, j)   # I go out of the loop } }) library("parallel") system.time({ B <- split(A, cut(A, detectCores(), labels = FALSE)) out <- unname(unlist(mclapply(B, FUN= function(Bi) {   outi <- NULL   for (i in Bi) {     # I do something with i, an element of A     j <- sqrt(i)     outi <- c(outi, j)     # I go out of the loop   }   return(outi) }))) })