IniziaInizia gratis

Parallelizzare le chiamate a chunk.apply

La funzione chunk.apply() può anche sfruttare processi paralleli per elaborare i dati più velocemente. Quando il parametro CH.PARALLEL è impostato a un valore maggiore di uno su macchine Linux e Unix (incluso Mac), più processi leggono ed elaborano i dati contemporaneamente, riducendo così il tempo di esecuzione. Su Windows il parametro CH.PARALLEL viene ignorato.

Questo esercizio fa parte del corso

Elaborazione scalabile dei dati in R

Visualizza il corso

Istruzioni dell'esercizio

  • Esegui un benchmark della funzione iotools_read_fun(), prima con 1 processo e poi con 3 processi paralleli.

Esercizio pratico interattivo

Prova a risolvere questo esercizio completando il codice di esempio.

iotools_read_fun <- function(parallel) {
    fc <- file("mortgage-sample.csv", "rb")
    readLines(fc, n = 1)
    chunk.apply(fc, make_msa_table,
                CH.MAX.SIZE = 1e5, CH.PARALLEL = parallel)
    close(fc)
}

# Benchmark the new function
microbenchmark(
    # Use one process
    ___, 
    # Use three processes
    ___, 
    times = 20
)
Modifica ed esegui il codice