因此,我有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 ##??
答案 0 :(得分:0)
如果您的函数大约需要20分钟,那么我真的会考虑使用RcppPaallel包重写它们,这并不比直接cpp难得多。这样,您可以使用更多线程,但一次只能运行一个函数。当我用自己的代码执行此操作时,我的计算时间从大约15分钟减少到少于2分钟。