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
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
)