Paralelizar llamadas a chunk.apply
La función chunk.apply() también puede usar procesos en paralelo para procesar datos más rápido. Cuando el parámetro CH.PARALLEL se establece en un valor mayor que uno en máquinas Linux y Unix (incluido Mac), varios procesos leen y procesan datos al mismo tiempo, reduciendo así el tiempo de ejecución. En Windows, el parámetro CH.PARALLEL se ignora.
Este ejercicio forma parte del curso
Procesamiento de datos escalable en R
Instrucciones del ejercicio
- Haz un benchmark de la función
iotools_read_fun(), primero con 1 proceso y después con 3 procesos en paralelo.
Ejercicio interactivo práctico
Prueba este ejercicio y completa el código de muestra.
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
)