迁移到 parApply
要使用 parallel 包并行运行代码,基本流程分为三步:
- 使用
makeCluster()创建集群。 - 执行并行计算。
- 使用
stopCluster()停止集群。
创建集群最简单的方法是向 makeCluster() 传入一个数字。它会创建一个默认类型的集群,并在相应数量的内核上运行代码。
对象 dd 是一个包含 10 列、100 行的数据框。下面的代码使用 apply() 计算各列的中位数:
apply(dd, 2, median)
要并行运行这段代码,您可以将 apply() 替换为 parApply()。该函数的参数与 apply() 基本相同,只是需要在原有 apply() 参数之前多传入一个集群参数。
本练习是课程的一部分
高效 R 代码写作
练习说明
- 使用
detectCores()函数,将可用内核的数量打印到控制台。 - 使用
makeCluster()创建一个集群;将内核数量设为 2。将结果保存为cl。 - 将上面的
apply()改写为parApply()。注意,第一个参数现在应为集群对象cl。 - 使用
stopCluster()停止集群。
交互式实操练习
通过完成这段示例代码来试试这个练习。
# Determine the number of available cores
___
# Create a cluster via makeCluster
cl <- makeCluster(___)
# Parallelize this code
apply(dd, 2, median)
# Stop the cluster
stopCluster(cl)