Befolkningstillväxttakter med mclapply()
Som statistisk programmerare arbetar du mycket med bootstrapping i R. En av de återkommande analyserna du utför är att bootstrappa en fördelning för den genomsnittliga befolkningstillväxttakten för olika länder under en given tidsperiod.
Den befintliga koden i produktion använder ett PSOCK-kluster och parLapply() för att parallellisera processen. Den körs dock fortfarande för långsamt för produktionsbehoven. Din chef har bett dig jämföra prestandan hos PSOCK- respektive FORK-kluster.
gr_list finns tillgänglig i din arbetsmiljö. Varje element i gr_list innehåller befolkningstillväxttakter för ett givet land från 2001 till 2021. Bootstrap-funktionen boot_dist() är också tillgänglig. Paketen parallel och microbenchmark har laddats in.
Den här övningen är en del av kursen
Parallell programmering i R
Övningsinstruktioner
- Använd FORK-versionen av
parLapply(). - Ange listan med indata.
- Ange den funktion som ska tillämpas på varje element i indata.
- Ange fyra kärnor för FORK-klustret.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
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)