CommencezCommencez gratuitement

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

Voir le cours

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
)
Modifier et exécuter le code