This is great, James. Thank you so much for sharing. Best regards, Naeem
On Fri, May 14, 2021 at 3:09 PM Balamuta, James Joseph < balam...@illinois.edu> wrote: > Naeem, > > > > The best path for including compiled code in a package is to place it > within the `src/` directory instead of using `Rcpp::cppFunction()` to > compile. The reasons for this are stated succiently here: > https://stackoverflow.com/a/6074391/1345455 > > > > From there, the C++ can easily be exported across parallel workers just by > loading the package. > > > > Consider looking at how this example package using doParallel is > structured. > > > > https://github.com/r-pkg-examples/rcpp-and-doparallel > > > > Best, > > > > JJB > > > > *From: *Rcpp-devel <rcpp-devel-boun...@lists.r-forge.r-project.org> on > behalf of Naeem Khoshnevis <khoshnevis.na...@gmail.com> > *Date: *Friday, May 14, 2021 at 11:49 AM > *To: *"rcpp-devel@lists.r-forge.r-project.org" < > rcpp-devel@lists.r-forge.r-project.org> > *Subject: *[Rcpp-devel] Exporting rcpp-based function into parLapply > workers in an R package > > > > Dear Rcpp developers: > > Thanks for developing and maintaining the Rcpp package. > I wrote a function in Rcpp. It is available throughout the package and > works as expected; however, it is not available for praLapply workers. A > temporary fix is just using Rcpp::cppFunction inside the function that > parLapply workers call and copy the entire function over there. However, > this does not seem right for bigger and more complicated functions. > I would be grateful if you could let me know whether there is a better > long-term solution. Here is the package and three functions that you might > want to take a look at. > > Original cpp function: > > https://github.com/fasrc/CausalGPS/blob/master/src/compute_closest_wgps_helper.cpp > <https://urldefense.com/v3/__https:/github.com/fasrc/CausalGPS/blob/master/src/compute_closest_wgps_helper.cpp__;!!DZ3fjg!oyv9eCC8FkfL4RzQ_LE613qZNCplLbfU22AlYI8Faem0SaWx-GcDeRWHef6zf-42AH4$> > > Wrapper function that calls this function + temporal fix: > https://github.com/fasrc/CausalGPS/blob/master/R/compute_closest_wgps.R > <https://urldefense.com/v3/__https:/github.com/fasrc/CausalGPS/blob/master/R/compute_closest_wgps.R__;!!DZ3fjg!oyv9eCC8FkfL4RzQ_LE613qZNCplLbfU22AlYI8Faem0SaWx-GcDeRWHef6z0KitDq4$> > > The function that uses parLapply (please see line 63-89) to run the c++ > code: > https://github.com/fasrc/CausalGPS/blob/master/R/compute_closest_wgps.R > <https://urldefense.com/v3/__https:/github.com/fasrc/CausalGPS/blob/master/R/compute_closest_wgps.R__;!!DZ3fjg!oyv9eCC8FkfL4RzQ_LE613qZNCplLbfU22AlYI8Faem0SaWx-GcDeRWHef6z0KitDq4$> > > Best regards, > Naeem >
_______________________________________________ Rcpp-devel mailing list Rcpp-devel@lists.r-forge.r-project.org https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel