Zrównoleglanie wywołań chunk.apply
Funkcja chunk.apply() może również korzystać z równoległych procesów, aby szybciej przetwarzać dane. Gdy parametr CH.PARALLEL zostanie ustawiony na wartość większą niż jeden na maszynach z systemem Linux lub Unix (w tym na Macu), dane są jednocześnie odczytywane i przetwarzane przez wiele procesów, co skraca czas wykonania. Na systemie Windows parametr CH.PARALLEL jest ignorowany.
To ćwiczenie jest częścią kursu
Skalowalne przetwarzanie danych w R
Instrukcje do ćwiczenia
- Przeprowadź benchmark funkcji
iotools_read_fun()— najpierw z 1 procesem, a następnie z 3 równoległymi procesami.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
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
)