Microbenchmark dei ricavi
Lavori come Data Analyst per un venditore online. Hai estratto i dati di vendita di diversi prodotti venduti durante un mese. Sono disponibili nel tuo workspace come lista, ls_sales. Ogni elemento di questa lista è un vettore di ricavi per un determinato prodotto.
Vuoi vedere come sono cresciuti i ricavi giorno per giorno. Questo significa calcolare una somma cumulata. Il base R ha una funzione chiamata cumsum() che fa al caso nostro. Ma vuoi capire se la parallelizzazione può aiutare. Vuoi applicare cumsum() a ogni elemento di ls_sales in modo sequenziale e in parallelo e confrontare i risultati. I pacchetti parallel e microbenchmark sono già stati caricati per te.
Questo esercizio fa parte del corso
Programmazione parallela in R
Istruzioni dell'esercizio
- Passa le versioni sequenziale e parallela come argomenti a una chiamata
microbenchmark(). - Genera un cluster con tutti i core disponibili meno due.
- Usa il cluster per applicare
cumsum()als_salesin parallelo usandoparLapply(). - Arresta il cluster una volta terminato il calcolo.
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
# 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
___