Umsätze microbenchmarken
Du arbeitest als Data Analyst bei einem Onlinehändler. Du hast Verkaufsdaten für verschiedene Produkte eines Monats abgefragt. Diese liegen in deinem Workspace als Liste ls_sales vor. Jedes Element dieser Liste ist ein Vektor mit Umsätzen für ein bestimmtes Produkt.
Du möchtest sehen, wie der Umsatz von Tag zu Tag gewachsen ist. Das bedeutet, eine kumulative Summe zu berechnen. In Base R gibt es dafür die Funktion cumsum(). Du möchtest aber prüfen, ob Parallelisierung helfen kann. Du willst cumsum() auf jedes Element von ls_sales einmal sequenziell und einmal parallel anwenden und die Ergebnisse vergleichen. Die Pakete parallel und microbenchmark sind bereits geladen.
Diese Übung ist Teil des Kurses
Paralleles Programmieren in R
Anleitung zur Übung
- Übergib die sequenzielle und die parallele Variante als Argumente an einen
microbenchmark()-Aufruf. - Erzeuge einen Cluster aus allen verfügbaren Kernen minus zwei.
- Nutze den Cluster, um
cumsum()mitparLapply()parallel aufls_salesanzuwenden. - Stoppe den Cluster, sobald die Berechnung abgeschlossen ist.
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
# 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
___