Bonjour,

Je commence à me pencher sur la parallélisation de calcul sur plusieurs cores.

L'exemple suivant marche très bien.
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
Avec le moteur d'activité je peux voir que les deux cores sont utilisés.
Par contre avec cet autre exemple :
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
Il n'y a qu'un seul core qui travaille . Alors que je voudrais faire travailler les deux.

J'espère que quelqu'un a un peu d'expérience sur ce sujet.

Cordialement.