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
)