Aan de slagGa gratis aan de slag

Microbenchmark van omzet

Je werkt als Data Analyst voor een online verkoper. Je hebt verkoopgegevens opgehaald voor verschillende producten die in één maand zijn verkocht. Deze staan in je werkruimte als een lijst, ls_sales. Elk element van deze lijst is een vector met omzetten voor een bepaald product.

Je wilt zien hoe de omzet dag voor dag groeide. Dit betekent dat je een cumulatieve som moet berekenen. Base R heeft hiervoor de functie cumsum(). Maar je wilt kijken of paralleliseren kan helpen. Je wilt cumsum() toepassen op elk element van ls_sales, zowel sequentieel als parallel, en de resultaten vergelijken. De pakketten parallel en microbenchmark zijn alvast voor je geladen.

Deze oefening maakt deel uit van de cursus

Parallel programmeren in R

Cursus bekijken

Oefeninstructies

  • Geef de sequentiële en parallelle versies door als argumenten aan een aanroep van microbenchmark().
  • Genereer een cluster van alle beschikbare cores min twee.
  • Gebruik het cluster om cumsum() parallel toe te passen op ls_sales met parLapply().
  • Stop het cluster zodra de berekening klaar is.

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

# 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
___
Code bewerken en uitvoeren