CommencezCommencez gratuitement

Taux de croissance de la population avec mclapply()

En tant que programmeur ou programmeuse en statistique, vous faites beaucoup de bootstrap dans R. L'une de vos analyses courantes consiste à obtenir par bootstrap une distribution de la moyenne du taux de croissance de la population pour différents pays sur une période donnée.

Le code actuellement en production utilise une grappe PSOCK et parLapply() pour paralléliser ce traitement afin d'exécuter le tout efficacement. Cependant, c'est encore trop lent pour les besoins de production. Votre supérieur vous a demandé de comparer la performance des grappes PSOCK et FORK.

gr_list a été chargé dans votre espace de travail. Chaque élément de gr_list contient les taux de croissance de la population pour un pays donné de 2001 à 2021. La fonction de bootstrap boot_dist() est aussi disponible. Les paquets parallel et microbenchmark ont été chargés.

Cette activité fait partie du cours

Programmation parallèle en R

Voir le cours

Instructions de l’exercice

  • Utilisez la version FORK de parLapply().
  • Fournissez la liste des intrants.
  • Fournissez la fonction à appliquer à chaque élément de l'intrant.
  • Spécifiez quatre cœurs pour la grappe FORK.

Exercice interactif pratique

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

microbenchmark(
  "PSOCK" = {
    cl <- makeCluster(4)
    parLapply(cl, gr_list, boot_dist)
    stopCluster(cl)
  },
  # Use the FORK version of parLapply()
  "FORK" = ___(
    # Supply input
    ___,
    # Supply function to apply
    ___,
    # Specify number of cores
    ___ = ___),
  times = 1)
Modifier et exécuter le code