Bonjour,
Je commence à me pencher sur la parallélisation de calcul sur plusieurs cores.
L'exemple suivant marche très bien.
Avec le moteur d'activité je peux voir que les deux cores sont utilisés.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 library(doMC) registerDoMC() x <- iris[which(iris[, 5] != "setosa"), c(1, 5)] trials <- 10000 ptime <- system.time({ r <- foreach(icount(trials), .combine = cbind) %dopar% { ind <- sample(100, 100, replace = TRUE) result1 <- glm(x[ind, 2] ~ x[ind, 1], family = binomial(logit)) coefficients(result1) } })[3] ptime
Par contre avec cet autre exemple :
Il n'y a qu'un seul core qui travaille . Alors que je voudrais faire travailler les deux.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 library(doMC) registerDoMC() trials <- 30000 ptime <- system.time({ x <- foreach(icount(trials)) %dopar% sqrt(i) })[3] ptime
J'espère que quelqu'un a un peu d'expérience sur ce sujet.
Cordialement.
Partager