Microbenchmark tržeb
Pracuješ jako datový analytik pro internetového prodejce. Dotázal/a sis prodejní data pro různé produkty za jeden měsíc. V pracovním prostředí je máš k dispozici jako seznam ls_sales. Každý prvek tohoto seznamu je vektor tržeb pro daný produkt.
Chceš sledovat, jak tržby rostly den po dni – k tomu se hodí kumulativní součet. Základní R nabízí funkci cumsum(), která to zvládne. Zajímá tě ale, jestli by pomohla paralelizace. Chceš proto aplikovat cumsum() na každý prvek seznamu ls_sales sekvenčně i paralelně a výsledky porovnat. Balíčky parallel a microbenchmark jsou už načtené.
Toto cvičení je součástí kurzu
Paralelní programování v R
Pokyny k cvičení
- Předej sekvenční a paralelní verzi jako argumenty volání
microbenchmark(). - Vytvoř cluster ze všech dostupných jader minus dvě.
- Pomocí tohoto clusteru aplikuj
cumsum()nals_salesparalelně s využitímparLapply(). - Po dokončení výpočtu cluster zastav.
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
# 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
___