Kom igångKom igång gratis

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

Visa kurs

Ö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)
Redigera och kör kod