R-EasyABC中的并行化。错误:...找不到功能

杰泰

我正在尝试从R中并行运行EasyABC包中的ABC_sequential()函数。但是我遇到了错误:

checkForRemoteErrors(val)中的错误:2个节点产生了错误;第一个错误:找不到函数“ f”

我认为这是因为ABC_sequential()最终会调用parLapplyLB()(https://github.com/cran/EasyABC/blob/master/R/EasyABC-internal.R),我必须使用clusterExport()导出函数?parSapply在全局环境中找不到对象

因为该函数在其中调用了makeCluster(),所以看来我可能需要修改软件包才能添加clusterExport(cl, "f")但是,由于我是一个新手,所以我没有考虑根据自己的需要修改软件包(而且我怀疑它可能比添加一行代码要复杂得多)。我想知道是否有更好/更轻松的解决方法来使我的功能进入并行节点?以下是基于R帮助中ABC_sequential给出的并行示例的简化可复制示例:

library(EasyABC)

f <- function(x){
    x = x^2     
}

toy_model_parallel <- function(x){ 
set.seed(x[1])
2 * x[2] + f(2) + rnorm(1,0,0.1)
}

sum_stat_obs <- 6.5
pacc <- .4
toy_prior <- list(c("unif",0,1)) # a uniform prior distribution between 0 and 1

# this line of code gives the checkForRemoteErrors(val) error
ABC_Lenormand <- ABC_sequential(method="Lenormand", model=toy_model_parallel, prior=toy_prior, nb_simul=20, summary_stat_target=sum_stat_obs, p_acc_min=pacc, use_seed=TRUE, n_cluster=2)
}

任何意见是极大的赞赏。

史蒂夫·韦斯顿

您可以在模型函数中定义任何必要的辅助函数。在这种情况下:

toy_model_parallel <- function(x){ 
    f <- function(x){
        x = x^2
    }
    set.seed(x[1])
    2 * x[2] + f(2) + rnorm(1,0,0.1)
}

看来您需要在此函数的开头进行任何工作程序初始化。因此,如果您的函数需要从另一个包中调用函数,则还需要在模型函数的开头加载该包。

我建议您向软件包开发人员发送电子邮件,以查看他们是否有更好的解决方案。如果没有,您可能会要求他们添加对用户指定的集群对象的支持。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在R中找不到功能

来自分类Dev

R找不到功能

来自分类Dev

R错误:从文件加载时找不到功能

来自分类Dev

仅在R调试器中时,“找不到功能”

来自分类Dev

错误:找不到功能

来自分类Dev

R并行:错误“找不到函数“%do%””

来自分类Dev

R Markdown找不到功能

来自分类Dev

R闪亮,找不到功能

来自分类Dev

错误:找不到功能“指南”

来自分类Dev

在SQL Server 2008 R2 Express Edition中找不到集成服务功能吗?

来自分类Dev

R optimParallel-找不到功能

来自分类Dev

R-找不到功能“ CLD”

来自分类Dev

R“找不到对象”错误

来自分类Dev

R并行编程:{:任务1中的错误失败-“找不到函数“%>%”“

来自分类Dev

R foreach并行找不到全局函数

来自分类常见问题

MSVC错误?找不到功能受限的成员

来自分类Dev

JavaScript跳转功能失败,找不到错误

来自分类Dev

JavaScript跳转功能失败,找不到错误

来自分类Dev

在类路径中找不到功能:/ cucumberOptions

来自分类Dev

R闪亮错误:找不到函数“ shell”

来自分类Dev

R闪亮错误:找不到对象输入

来自分类Dev

rpmbuild错误:找不到命令$`\ r`

来自分类Dev

r:错误:找不到函数-用户定义

来自分类Dev

r:错误:找不到函数-用户定义

来自分类Dev

R闪亮错误:找不到函数“ shell”

来自分类Dev

通过R Studio读取功能时找不到对象

来自分类Dev

通过R Studio读取功能时找不到对象

来自分类Dev

从zip文件R安装后找不到功能“年份”

来自分类Dev

在R doParallel'foreach'中找不到函数-{中的错误:任务1失败-“找不到函数” raster“”