【问题标题】:mclapply() using only 2 cores on 32 core systemmclapply() 在 32 核系统上仅使用 2 个核
【发布时间】:2020-08-07 19:52:56
【问题描述】:

我正在尝试加快与 Chase et al. 2011 计算的 raup-crick 差异相关的计算时间。为了实现这一点,我尝试在运行 Rstudio 服务器的 32 核基于 ubuntu 的机器上利用并行计算。

这是我用来尝试并行运行计算的代码。 Rstudio 使用两个核心来处理计算(通过 htop 确定),这表明我已经实现了某种程度的并行计算。但是,我希望 Rstudio 使用更多内核,因为它有多达 32 个可供使用。

f <- function(i) {
rc.shedding.otu <- raup_crick(df.shedding.otu, classic_metric = TRUE, plot_names_in_col1 = FALSE, reps = 999)
}

mclapply(1:100, f)

mclapply() 用于并行计算的应用对我来说相对较新。但是,我希望在该领域更有经验的其他人能够确定这是我的代码错误的结果还是基于我尝试执行的功能的限制。非常感谢任何见解或建议!

【问题讨论】:

  • 试试mclapply(1:100, f, mc.cores = 16L) 或类似的东西。您可能希望使用较小的样本进行基准测试,此时添加更多内核不会(太多)改善您的机器。
  • 感谢您的提示!在查看 mclapply() 的文档时,我错过了这个论点。我一定会试一试的。

标签: r multithreading parallel-processing multiprocessing mclapply


【解决方案1】:

正如用户 12728748 建议的那样,解决此问题的方法是为参数 mc.cores = #L 发出一个值

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-29
    • 2021-01-22
    • 1970-01-01
    相关资源
    最近更新 更多