`dmn {DirichletMultinomial}` 可以在 R 中的多个 cpu 核心上 运行 吗?

Can `dmn {DirichletMultinomial}` be run on multiple cpu cores in R?

我使用

分析微生物组数据
library(phyloseq)
library(microbiome)
library(DirichletMultinomial)

和其他几个库。拟合 Dirichlet-Multinomial 模型来计算数据 dmn {DirichletMultinomial} 需要相当长的时间。可以在 R 中的多个 cpu 核心上进行 运行 计算吗? 我试过了:

dat <- abundances(pseq)
count <- as.matrix(t(dat))
fit <- lapply(1:25, dmn, count = count, verbose=TRUE)

替换为:

library(parallel)
numCores <- detectCores()
...
fit <- mclapply(1:25, dmn, count = count, verbose=TRUE, mc.cores = numCores)

但它 returns 错误警告消息: 在 mclapply(1:25, dmn, count = count, verbose = TRUE, mc.cores = numCores) 中: 所有计划的核心在用户代码中遇到错误

我正在使用

R version 4.0.2 (2020-06-22) -- "Taking Off Again"
Copyright (C) 2020 The R Foundation for Statistical Computing
Platform: x86_64-apple-darwin17.0 (64-bit)
> detectCores()
[1] 4

有人能帮忙吗?

此致, 马辛

是的,如小插图 http://bioconductor.org/packages/release/bioc/vignettes/DirichletMultinomial/inst/doc/DirichletMultinomial.pdf 第 2 部分和您的代码中所示,可以在多个内核上 运行。

可能发生的情况是 X 的某些值存在错误;什么是适合的价值?另外,可以试试

library(BiocParallel)
fit <- bplapply(1:25, dmm, count, BPPARAM = MulticoreParam(numCores))

fit 将是一个可以查询的对象(请参阅 https://bioconductor.org/packages/BiocParallel 中提供的 BiocParallel 小插图)以获取更多错误信息。