Paralelizace volání chunk.apply
Funkce chunk.apply() umí také využít paralelní procesy pro rychlejší zpracování dat. Pokud nastavíš parametr CH.PARALLEL na hodnotu větší než 1 na systémech Linux a Unix (včetně Macu), více procesů čte a zpracovává data současně, čímž se zkrátí doba provádění. Na Windows je parametr CH.PARALLEL ignorován.
Toto cvičení je součástí kurzu
Škálovatelné zpracování dat v R
Pokyny k cvičení
- Proveď benchmark funkce
iotools_read_fun()— nejprve s 1 procesem a poté se 3 paralelními procesy.
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
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
)