Paralléliser les appels à chunk.apply
La fonction chunk.apply() peut également utiliser des processus parallèles pour traiter les données plus rapidement. Lorsque le paramètre CH.PARALLEL est supérieur à un sur les machines Linux et Unix (y compris Mac), plusieurs processus lisent et traitent les données en même temps, ce qui réduit le temps d’exécution. Sous Windows, le paramètre CH.PARALLEL est ignoré.
Cet exercice fait partie du cours
<cours>Traitement de données à grande échelle en R</cours>Instructions de l’exercice
- Évaluez les performances de la fonction
iotools_read_fun(), d’abord avec 1 processus puis avec 3 processus parallèles.
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
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
)