CommencerCommencer gratuitement

Passer à parApply

Pour exécuter du code en parallèle avec le package parallel, le flux de travail de base comporte trois étapes.

  1. Créer un cluster avec makeCluster().
  2. Effectuer un traitement.
  3. Arrêter le cluster avec stopCluster().

La façon la plus simple de créer un cluster est de passer un nombre à makeCluster(). Cela crée un cluster de type par défaut, et exécute le code sur ce nombre de cœurs.

L’objet dd est un data frame avec 10 colonnes et 100 lignes. Le code suivant utilise apply() pour calculer les médianes des colonnes :

apply(dd, 2, median)

Pour exécuter cela en parallèle, remplacez apply() par parApply(). Les arguments de cette fonction sont les mêmes, sauf qu’elle prend un argument cluster avant les arguments habituels de apply().

Cet exercice fait partie du cours

Écrire du code R efficace

Afficher le cours

Instructions

  • Utilisez la fonction detectCores() pour afficher dans la console le nombre de cœurs disponibles.
  • Créez un cluster avec makeCluster() ; définissez le nombre de cœurs utilisés à 2. Enregistrez le résultat dans cl.
  • Réécrivez la fonction apply() ci‑dessus avec parApply(). N’oubliez pas : le premier argument doit maintenant être l’objet cluster, cl.
  • Arrêtez le cluster avec stopCluster().

Exercice interactif pratique

Essayez cet exercice en complétant cet exemple de code.

# Determine the number of available cores
___

# Create a cluster via makeCluster
cl <- makeCluster(___)

# Parallelize this code
apply(dd, 2, median)

# Stop the cluster
stopCluster(cl)
Modifier et exécuter le code