开始使用免费开始使用

使用 mclapply() 计算人口增长率

作为一名统计程序员,您经常在 R 中进行自助法(bootstrap)分析。您的一项常规分析任务,是在给定时间段内,对不同国家的人口增长率均值进行自助抽样以得到其分布。

当前投产的代码使用 PSOCK 集群和 parLapply() 来并行化该过程,以提高执行效率。然而,这对生产需求来说仍然偏慢。您的主管要求您比较 PSOCK 与 FORK 集群的性能。

gr_list 已加载到您的工作区。gr_list 的每个元素都包含某个国家在 2001 至 2021 年的人口增长率。自助函数 boot_dist() 也可用。parallelmicrobenchmark 包已加载。

本练习是课程的一部分

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)
编辑并运行代码