始める無料で始める

収益をマイクロベンチマークする

あなたはオンライン販売業者のデータアナリストです。ある月に販売された複数商品の売上データを取得しました。これは作業スペース内のリスト ls_sales として利用できます。このリストの各要素は、特定商品の収益ベクトルです。

日ごとの収益の伸びを確認したいと考えています。これは累積和を計算することを意味します。Base R には cumsum() という関数があります。ただし、並列化で高速化できるかを確かめたいと思います。ls_sales の各要素に対して cumsum() を逐次と並列の両方で適用し、結果を比較します。parallelmicrobenchmark パッケージは読み込まれています。

この演習はコースの一部です

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