Aan de slagBegin gratis

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

Bekijk cursus

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.

Interactieve oefening met praktijkervaring

Probeer deze oefening door deze voorbeeldcode aan 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)
Code bewerken en uitvoeren