Tassi di crescita della popolazione con mclapply()
Come Statistical Programmer, fai spesso bootstrapping in R. Una delle analisi di routine che esegui è il bootstrap di una distribuzione per il tasso medio di crescita della popolazione di diversi paesi in un determinato periodo.
Il codice attualmente in produzione usa un cluster PSOCK e parLapply() per parallelizzare questo processo e renderlo efficiente. Tuttavia, per le esigenze di produzione è ancora lento. Il tuo responsabile ti ha chiesto di confrontare le prestazioni dei cluster PSOCK rispetto ai cluster FORK.
gr_list è stato caricato nel tuo spazio di lavoro. Ogni elemento di gr_list contiene i tassi di crescita della popolazione per un dato paese dal 2001 al 2021. La funzione di bootstrap, boot_dist(), è disponibile. I pacchetti parallel e microbenchmark sono stati caricati.
Questo esercizio fa parte del corso
Programmazione parallela in R
Istruzioni dell'esercizio
- Usa la versione FORK di
parLapply(). - Fornisci la lista degli input.
- Fornisci la funzione da applicare a ciascun elemento dell'input.
- Specifica quattro core per il cluster FORK.
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
microbenchmark(
"PSOCK" = {
cl <- makeCluster(4)
parLapply(cl, gr_list, boot_dist)
stopCluster(cl)
},
# Use the FORK version of parLapply()
"FORK" = ___(
# Supply input
___,
# Supply function to apply
___,
# Specify number of cores
___ = ___),
times = 1)