始める無料で始める

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
)
コードを編集して実行