CommencezCommencez gratuitement

Microbenchmark des revenus

Vous êtes analyste de données pour un vendeur en ligne. Vous avez extrait les données de ventes pour différents produits vendus au cours d'un mois. Elles sont disponibles dans votre espace de travail sous forme de liste, ls_sales. Chaque élément de cette liste est un vecteur de revenus pour un produit donné.

Vous souhaitez voir l'évolution quotidienne des revenus. Cela signifie calculer une somme cumulative. R de base offre une fonction appelée cumsum() pour faire le travail. Mais vous voulez vérifier si la parallélisation peut aider. Vous voulez appliquer cumsum() à chaque élément de ls_sales de manière séquentielle et en parallèle, puis comparer les résultats. Les packages parallel et microbenchmark ont été chargés pour vous.

Cette activité fait partie du cours

Programmation parallèle en R

Voir le cours

Instructions de l’exercice

  • Passez les versions séquentielle et parallèle comme arguments à un appel microbenchmark().
  • Générez un groupe de nœuds utilisant tous les cœurs disponibles moins deux.
  • Utilisez ce groupe pour appliquer cumsum() à ls_sales en parallèle à l'aide de parLapply().
  • Arrêtez le groupe une fois le calcul terminé.

Exercice interactif pratique

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

# Pass the code to microbenchmark
___
  
  "lapply" = lapply(ls_sales, cumsum),
  
  "parLapply" = {
    # Make a cluster of all cores minus two
    cluster <- ___
    # Use cluster to apply in parallel
    parLapply(cluster, ___, ___)
    # Stop cluster
    ___
  },
  times = 3
___
Modifier et exécuter le code