収益をマイクロベンチマークする
あなたはオンライン販売業者のデータアナリストです。ある月に販売された複数商品の売上データを取得しました。これは作業スペース内のリスト ls_sales として利用できます。このリストの各要素は、特定商品の収益ベクトルです。
日ごとの収益の伸びを確認したいと考えています。これは累積和を計算することを意味します。Base R には cumsum() という関数があります。ただし、並列化で高速化できるかを確かめたいと思います。ls_sales の各要素に対して cumsum() を逐次と並列の両方で適用し、結果を比較します。parallel と microbenchmark パッケージは読み込まれています。
この演習はコースの一部です
R による並列プログラミング
演習の手順
- 逐次版と並列版を
microbenchmark()の引数として渡します。 - 利用可能なコア数から 2 を引いた数でクラスターを生成します。
- そのクラスターを使って、
parLapply()でls_salesに対してcumsum()を並列に適用します。 - 計算が終わったらクラスターを停止します。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# Pass the code to microbenchmark
___
"lapply" = lapply(ls_sales, cumsum),
"parLapply" = {
# Make a cluster of all cores minus two
cluster <- ___
# Use cluster to apply in parallel
parLapply(cluster, ___, ___)
# Stop cluster
___
},
times = 3
___