開始使用免費開始

用 microbenchmark 測試營收

你在一家網路銷售商擔任資料分析師。你已經查詢到某個月內不同產品的銷售資料,並以清單 ls_sales 存放在工作空間中。這個清單的每個元素,都是某個產品的每日營收向量。

你想查看營收逐日的成長情形。這表示需要計算累積總和。Base R 提供了 cumsum() 可以完成這件事。不過你也想看看平行化是否有幫助。你打算把 cumsum() 分別套用到 ls_sales 的每個元素上,做一次「逐一(序列)」與「平行」的版本,並比較結果。parallelmicrobenchmark 套件已為你載入。

本練習屬於課程

R 平行程式設計

檢視課程

練習說明

  • microbenchmark() 呼叫中,同時傳入序列版與平行版作為引數。
  • 產生一個叢集,使用可用核心數減 2 的規模。
  • 使用該叢集透過 parLapply() 平行地把 cumsum() 套用到 ls_sales
  • 計算完成後,停止叢集。

動手互動練習

試著完成這個範例程式碼,體驗一下這個練習。

# 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
___
編輯並執行程式碼