使用 mclapply() 计算人口增长率
作为一名统计程序员,您经常在 R 中进行自助法(bootstrap)分析。您的一项常规分析任务,是在给定时间段内,对不同国家的人口增长率均值进行自助抽样以得到其分布。
当前投产的代码使用 PSOCK 集群和 parLapply() 来并行化该过程,以提高执行效率。然而,这对生产需求来说仍然偏慢。您的主管要求您比较 PSOCK 与 FORK 集群的性能。
gr_list 已加载到您的工作区。gr_list 的每个元素都包含某个国家在 2001 至 2021 年的人口增长率。自助函数 boot_dist() 也可用。parallel 和 microbenchmark 包已加载。
本练习是课程的一部分
R 并行编程
练习说明
- 使用
parLapply()的 FORK 版本。 - 提供输入列表。
- 提供要应用于每个输入元素的函数。
- 为 FORK 集群指定 4 个核心。
交互式实操练习
通过完成这段示例代码来试试这个练习。
microbenchmark(
"PSOCK" = {
cl <- makeCluster(4)
parLapply(cl, gr_list, boot_dist)
stopCluster(cl)
},
# Use the FORK version of parLapply()
"FORK" = ___(
# Supply input
___,
# Supply function to apply
___,
# Specify number of cores
___ = ___),
times = 1)