r - R中的并行cpp函数?
问题描述
所以我有 2 个自定义 Rcpp 函数CustFunc1(x,y)
和CustFunc2(a,b)
. 两者都对计算要求很高(因此是 c++)。我的问题是在 R 中有一种方法可以与 dopar 包同时运行吗?或者我可以进行系统调用以直接访问 cpp 代码并尝试通过一些命令行工具进行并行处理?
现在的流程是:
result1=CustFunc(x,y) ##Takes 20 minutes
result2=CustFunc(a,b) ## Take 20 minutes
get_both <- function(x) {
foreach(i = seq_along(x)) %dopar% {
result1=CustFunc(x,y)
result2=CustFunc(a,b)
}
}
get_both$result1 == result1 #???
get_both$result2 == result2 ##??
解决方案
如果您的函数大约需要 20 分钟,我真的会考虑使用 RcppPaallel 包重写它们,它并不比直接 cpp 难多少。这样您就可以使用更多线程,但一次运行一个函数。当我使用自己的代码执行此操作时,我将计算时间从大约 15 分钟减少到不到 2 分钟。
推荐阅读
- visual-studio-code - 如何在 VS Code 中打开扩展页面?
- php - 是否可以通过使用 base64 来避免 SQL 注入
- email - 如何绕过谷歌 2 因素身份验证从第三方应用程序发送电子邮件?
- python - 无法从python中的嵌套列表中找出键值
- c - 在主函数中调用函数时卡住
- python - 分区后增量表存储中出现意外的新文件?
- python - 我需要使用 python 连接 HMA VPN
- javascript - 如何在 Sweet-alert (swal) 中更改按钮上的文本颜色
- amazon-web-services - 无法从 root 用户的 shell 连接到 EC2 实例 - 权限被拒绝(公钥) - Windows 10
- javascript - 如何使用 ajax 将 BLOB 数据发布到 asp.net webservice