Chapitre 6. Programmation en R
297
SECTION 6.7
Calcul parall` ele et calculs sur cartes
graphiques
6.7.1 Calcul parall` ele
Il est possible d’acc´ el´ erer vos calculs en les faisant tourner sur plusieurs processeurs simultan´ ement, ces processeurs pouvant mˆ eme se trouver sur des ordinateurs diff´ erents. Il existe plusieurs packages sp´ ecialis´ es pour cela, mentionn´ es
sur le CRAN Task View: High-Performance and Parallel Computing with
R, que vous pouvez consulter `
a l’adresse http://cran.r-project.org/web/
views/HighPerformanceComputing.html.
Le plus simple d’utilisation est le package parallel avec le protocole de
communication PSOCK, dont nous allons d´ ecrire succinctement l’utilisation cidessous sur un exemple.
Astuce
L’utilisation du protocole MPI (Message Passing Interface), via le package Rmpi, offre plus de flexibilit´ e que le protocole PSOCK, mais il n´ ecessite
l’installation pr´ ealable d’autres logiciels (OpenMPI ou mpich2 par exemple).
Renvoi
Le lecteur pourra consulter avec profit les sites http:
//www.divms.uiowa.edu/~luke/R/cluster/cluster.html,
http:
//www.sfu.ca/~sblay/R/snow.html et http://cran.r-project.org/
web/packages/snowfall/vignettes/snowfall.pdf.
Le code R suivant ´ evalue num´ eriquement (par une simulation de Monte
Carlo) le niveau empirique du test de normalit´ e de Shapiro-Wilks pour un
niveau nominal de 5 % :
> myfunc <- function(M=1000) {
+ decision <- 0
+ for (i in 1:M) {
+
x <- rnorm(100)
+
if (shapiro.test(x)$p < 0.05) decision <- decision + 1
+ }
+ return(decision)
+ }
Affichons le temps de calcul r´ esultant de l’utilisation de ce code avec M =
60 000 boucles de Monte Carlo :
297
SECTION 6.7
Calcul parall` ele et calculs sur cartes
graphiques
6.7.1 Calcul parall` ele
Il est possible d’acc´ el´ erer vos calculs en les faisant tourner sur plusieurs processeurs simultan´ ement, ces processeurs pouvant mˆ eme se trouver sur des ordinateurs diff´ erents. Il existe plusieurs packages sp´ ecialis´ es pour cela, mentionn´ es
sur le CRAN Task View: High-Performance and Parallel Computing with
R, que vous pouvez consulter `
a l’adresse http://cran.r-project.org/web/
views/HighPerformanceComputing.html.
Le plus simple d’utilisation est le package parallel avec le protocole de
communication PSOCK, dont nous allons d´ ecrire succinctement l’utilisation cidessous sur un exemple.
Astuce
L’utilisation du protocole MPI (Message Passing Interface), via le package Rmpi, offre plus de flexibilit´ e que le protocole PSOCK, mais il n´ ecessite
l’installation pr´ ealable d’autres logiciels (OpenMPI ou mpich2 par exemple).
Renvoi
Le lecteur pourra consulter avec profit les sites http:
//www.divms.uiowa.edu/~luke/R/cluster/cluster.html,
http:
//www.sfu.ca/~sblay/R/snow.html et http://cran.r-project.org/
web/packages/snowfall/vignettes/snowfall.pdf.
Le code R suivant ´ evalue num´ eriquement (par une simulation de Monte
Carlo) le niveau empirique du test de normalit´ e de Shapiro-Wilks pour un
niveau nominal de 5 % :
> myfunc <- function(M=1000) {
+ decision <- 0
+ for (i in 1:M) {
+
x <- rnorm(100)
+
if (shapiro.test(x)$p < 0.05) decision <- decision + 1
+ }
+ return(decision)
+ }
Affichons le temps de calcul r´ esultant de l’utilisation de ce code avec M =
60 000 boucles de Monte Carlo :
