在Windows上的parLapply中使用Rcpp函数
发布时间:2020-12-14 05:44:30 所属栏目:Windows 来源:网络整理
导读:我正在使用Rcpp和 Windows上的并行计算进行R代码优化.我在parLapply中调用Rcpp函数时遇到问题.这个例子如下 Rcpp代码(test.cpp) #include Rcpp.husing namespace Rcpp;// [[Rcpp::export]]NumericVector payoff( double strike,NumericVector data) { return
我正在使用Rcpp和
Windows上的并行计算进行R代码优化.我在parLapply中调用Rcpp函数时遇到问题.这个例子如下
Rcpp代码(test.cpp) #include <Rcpp.h> using namespace Rcpp; // [[Rcpp::export]] NumericVector payoff( double strike,NumericVector data) { return pmax(data - strike,0); } R代码 library(parallel) library(Rcpp) sourceCpp("test.cpp") strike_list <- as.list(seq(10,100,by = 5)) data <- runif(10000) * 50 # One core version strike_payoff <- lapply(strike_list,payoff,data) # Multiple cores version numWorkers <- detectCores() cl <- makeCluster(numWorkers,type = "PSOCK") clusterExport(cl = cl,varlist = "payoff") strike_payoff <- parLapply(cl,strike_list,data) 并行版本出错 Error in checkForRemoteErrors(val) : 8 nodes produced errors; first error: NULL value passed as symbol address 我知道这是一个Windows问题,因为mclapply在Linux上运行良好,但我没有像Windows那样强大的Linux机器. 任何想法如何解决它? 解决方法
您需要在每个衍生进程中运行sourceCpp()调用,否则请获取您的代码.现在主要过程有功能,产生的工人没有.
最简单的方法是构建一个包,并让每个工作进程加载它. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- windows – 如何从命令行创建仅按需运行的计划任务?
- windows – 需要ActiveX控件才能将Excel嵌入到对话框中
- 如何在Windows应用商店(WinRT)应用程序中使用C#检查CapsLoc
- Windows Server Backup 2008 – 语言不兼容?
- windows-store-apps – 如何启用FPS监控来测试XAML动画?
- 针对IIS7和Windows 2008的iOS“didReceiveAuthenticationCh
- 如何使用VS在Windows 7上安装Boost
- 适用于Windows的Java Compact配置文件(如何?)
- windows-server-2008 – 为什么捕获的异常会导致IIS甚至整个
- windows-7 – SStab在不同的操作系统中无法正确显示