CommencezCommencez gratuitement

Passer à parApply

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

  1. Créer un grappe avec makeCluster().
  2. Faire le travail.
  3. Arrêter le grappe avec stopCluster().

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

L'objet dd est une trame de données de 10 colonnes et 100 lignes. Le code suivant utilise apply() pour calculer les médianes par colonne :

apply(dd, 2, median)

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

Cette activité fait partie du cours

Écrire du code R efficace

Voir le cours

Instructions de l’exercice

  • Utilisez la fonction detectCores() pour afficher dans la console le nombre de cœurs disponibles.
  • Créez un grappe avec makeCluster(); fixez le nombre de cœurs utilisés à 2. Enregistrez le résultat dans cl.
  • Réécrivez la fonction apply() ci‑dessus en parApply(). Rappelez‑vous que le premier argument doit maintenant être l'objet grappe, cl.
  • Arrêtez le grappe avec stopCluster().

Exercice interactif pratique

Essayez cet exercice en complétant ce code d’exemple.

# 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