J'ai joué avec le serveur rstudio sur un vieux portable avec linux mint (debian) installé.cas d'utilisation incorrecte de mclapply?
J'ai toujours couru sur les fenêtres, donc je ne l'ai jamais pris avantage de parallel
ou multicore
paquets, et mon but était d'apprendre rstudio server
ainsi que R linux
et comment le traitement multicœur pourrait accélérer mon processus.
Une utilisation principale de lapply que je l'utilise sur une base quotidienne ressemble à ceci:
f <- function(x) {
x1 <- data[1:50, x]
x2 <- data[51:100, x]
line <- c(paste0(mean(x1), " (", sd(x1), ")"),
paste0(mean(x2), " (", sd(x2), ")"),
t.test(x1, x2)$p.value)
return(line)
}
data <- data.frame(matrix(rnorm(2600, 85, 19), nrow=100, ncol=26))
names(data) <- letters
do.call(rbind, lapply(letters, f))
microbenchmark(
do.call(rbind, lapply(letters, f))
)
temps médian est 21.8
millisecondes
Autre possibilité:
library(parallel)
microbenchmark(
do.call(rbind, mclapply(letters, f))
)
temps médian est 120.9
millisecondes .
Pourquoi cette énorme différence?
La machine est un dinosaure à 2 cœurs. Est-ce que vous ne voyez pas d'avantages tant que vous ne travaillez pas avec des machines à quatre noyaux? Est-ce que mon cas d'utilisation (calculs de colonne d'un data.frame) est incorrect pour voir les avantages?
Merci!
Je viens d'essayer ceci et sur mon processeur 2-core. L'écart s'est fermé d'environ 4 dixièmes de milliseconde, donc rien de proche du changement que vous avez reçu, mais c'était au moins dans la bonne direction. J'ai décidé de filtrer le système dans les deux sens en doublant également le nombre de variables à calculer (jusqu'à 52), à quel point j'ai finalement trouvé que mclapply avait un temps de calcul médian plus rapide. Merci! –