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
<Kurs>Paralleles Programmieren in R</Kurs>Übungsanweisungen
- Ü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 praktische Übung
Versuche dich an dieser Übung, indem du diesen Beispielcode vervollständigst.
# 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
___