平行化呼叫 chunk.apply
chunk.apply() 函式也能運用平行程序來更快處理資料。當在 Linux 與 Unix 機器(包含 Mac)上將 CH.PARALLEL 參數設為大於 1 的值時,會同時啟動多個程序讀取並處理資料,從而縮短執行時間。在 Windows 上則會忽略 CH.PARALLEL 參數。
本練習屬於課程
R 的可擴展資料處理
練習說明
- 針對
iotools_read_fun()進行效能比較:先使用 1 個程序,接著使用 3 個平行程序。
動手互動練習
試著完成這個範例程式碼,體驗一下這個練習。
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
)