用 microbenchmark 评估收入计算
您在一家线上零售商担任数据分析师。您已经查询了某月不同商品的销售数据。这些数据以列表 ls_sales 的形式放在工作空间中。列表的每个元素是某个商品的收入向量。
您想查看每日收入的累积增长情况。这需要计算累积和。Base R 提供了函数 cumsum() 可完成该任务。不过您也想评估并行化是否有帮助。您将把 cumsum() 分别以顺序方式和并行方式应用到 ls_sales 的每个元素上,并比较结果。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
___