Paralelizarea apelurilor către chunk.apply
Funcția chunk.apply() poate utiliza și procese paralele pentru a procesa datele mai rapid. Când parametrul CH.PARALLEL este setat la o valoare mai mare decât unu pe sisteme Linux și Unix (inclusiv Mac), mai multe procese citesc și procesează datele simultan, reducând astfel timpul de execuție. Pe Windows, parametrul CH.PARALLEL este ignorat.
Acest exercițiu face parte din cursul
Procesarea scalabilă a datelor în R
Instrucțiuni pentru exercițiu
- Măsoară performanța funcției
iotools_read_fun(), mai întâi cu 1 proces, apoi cu 3 procese paralele.
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
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
)