IniziaInizia gratis

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

Visualizza il corso

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)
Modifica ed esegui il codice