Microbenchmark av intäkter
Du arbetar som dataanalytiker hos en näthandlare. Du har hämtat försäljningsdata för olika produkter som sålts under en månad. Datan finns tillgänglig i din arbetsmiljö som en lista, ls_sales. Varje element i listan är en vektor med intäkter för en given produkt.
Du vill se hur intäkterna växte dag för dag, vilket innebär att du behöver beräkna en kumulativ summa. I bas-R finns funktionen cumsum() för detta ändamål. Nu vill du undersöka om parallellisering kan hjälpa. Du ska tillämpa cumsum() på varje element i ls_sales sekventiellt och parallellt och jämföra resultaten. Paketen parallel och microbenchmark har redan laddats in åt dig.
Den här övningen är en del av kursen
Parallell programmering i R
Övningsinstruktioner
- Skicka den sekventiella och den parallella versionen som argument till ett anrop till
microbenchmark(). - Skapa ett kluster med alla tillgängliga kärnor minus två.
- Använd klustret för att tillämpa
cumsum()påls_salesparallellt med hjälp avparLapply(). - Stoppa klustret när beräkningen är klar.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
# 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
___