Bevolkingsgroeipercentages met mclapply()
Als Statistical Programmer doe je veel bootstrapping in R. Een van je routineanalyses is het bootstrappen van een verdeling voor het gemiddelde bevolkingsgroeipercentage voor verschillende landen over een bepaalde periode.
De huidige code in productie gebruikt een PSOCK-cluster en parLapply() om dit proces te paralleliseren voor efficiënte uitvoering. Dit is echter nog steeds te traag voor de productiebehoeften. Je baas heeft je gevraagd de prestaties van PSOCK- versus FORK-clusters te vergelijken.
gr_list is in je workspace geladen. Elk element van gr_list bevat bevolkingsgroeipercentages voor een bepaald land van 2001 tot en met 2021. De bootstrapfunctie boot_dist() is ook beschikbaar. De pakketten parallel en microbenchmark zijn geladen.
Deze oefening maakt deel uit van de cursus
Parallel programmeren in R
Oefeninstructies
- Gebruik de FORK-versie van
parLapply(). - Geef de lijst met invoer door.
- Geef de functie op die je op elk element van de invoer toepast.
- Gebruik vier cores voor het FORK-cluster.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
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)