Paralléliser les appels à chunk.apply
La fonction chunk.apply() peut aussi tirer parti de processus parallèles pour traiter les données plus rapidement. Lorsque le paramètre CH.PARALLEL est défini à une valeur supérieure à un sur les systèmes 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. Sur Windows, le paramètre CH.PARALLEL est ignoré.
Cette activité fait partie du cours
Traitement de données évolutif en R
Instructions de l’exercice
- Évaluez la performance de la fonction
iotools_read_fun(), d'abord avec 1 processus, puis avec 3 processus en parallèle.
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
)