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
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 opls_salesmetparLapply(). - 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
___