Joshua Wiley
2014-Aug-07 23:35 UTC
[Rd] How to (appropropriately) use require in a package?
Dear All, What is the preferred way for Package A, to initialize a cluster, and load Package B on all nodes? I am writing a package that parallelizes some functions through the use of a cluster if useRs are on a Windows machine (using parLapply and family). I also make use of another package in some of my code, so it is necessary to load the required packages on each slave once the cluster is started. Right now, I have done this, by evaluating require(packages) on each slave; however, Rcmd check has a note that I should remove the "require" in my code. Thanks! Josh -- Joshua F. Wiley Ph.D. Student, UCLA Department of Psychology http://joshuawiley.com/ Senior Analyst, Elkhart Group Ltd. http://elkhartgroup.com Office: 260.673.5518 [[alternative HTML version deleted]]
Chris Green
2014-Aug-07 23:53 UTC
[Rd] How to (appropropriately) use require in a package?
I am not an expert here, but if it's a package, couldn't (shouldn't?) you include Package B in one of the Depends: or Imports: lines in the DESCRIPTION file? That would ensure Package B is automatically made accessible whenever Package A is loaded. For example, see the Writing R Extensions manual: http://cran.fhcrc.org/doc/manuals/r-release/R-exts.html#Package-Dependencies Chris Green Ph.D. Student, Statistics University of Washington, Seattle On Thu, Aug 7, 2014 at 4:35 PM, Joshua Wiley <jwiley.psych@gmail.com> wrote:> Dear All, > > What is the preferred way for Package A, to initialize a cluster, and load > Package B on all nodes? > > I am writing a package that parallelizes some functions through the use of > a cluster if useRs are on a Windows machine (using parLapply and family). > I also make use of another package in some of my code, so it is necessary > to load the required packages on each slave once the cluster is started. > > Right now, I have done this, by evaluating require(packages) on each slave; > however, Rcmd check has a note that I should remove the "require" in my > code. > > Thanks! > > Josh > > -- > Joshua F. Wiley > Ph.D. Student, UCLA Department of Psychology > http://joshuawiley.com/ > Senior Analyst, Elkhart Group Ltd. > http://elkhartgroup.com > Office: 260.673.5518 > > [[alternative HTML version deleted]] > > ______________________________________________ > R-devel@r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-devel >[[alternative HTML version deleted]]
Joshua Wiley
2014-Aug-07 23:58 UTC
[Rd] How to (appropropriately) use require in a package?
Someone kindly pointed out that it is not clear from my email why Depends will not work. A more complete example is: PkgA: f <- function(ncores) { cl <- makeCluster(ncores) clusterEvalQ(cl, { require(PkgB) }) [other code] ### this is the code I want to work and need to be able to call ### PkgB functions on each of the cluster slaves output <- parLapply(cl, 1:n, function(i) { [code from my package and using some functions from PkgB] }) } As far as I know, just because I add PkgB to the Depends (or imports, whatever) of PkgA, does not mean that the cluster started by PkgA will automatically have PkgB loaded and functions available. Thanks! On Fri, Aug 8, 2014 at 9:35 AM, Joshua Wiley <jwiley.psych@gmail.com> wrote:> Dear All, > > What is the preferred way for Package A, to initialize a cluster, and load > Package B on all nodes? > > I am writing a package that parallelizes some functions through the use of > a cluster if useRs are on a Windows machine (using parLapply and family). > I also make use of another package in some of my code, so it is necessary > to load the required packages on each slave once the cluster is started. > > Right now, I have done this, by evaluating require(packages) on each > slave; however, Rcmd check has a note that I should remove the "require" in > my code. > > Thanks! > > Josh > > -- > Joshua F. Wiley > Ph.D. Student, UCLA Department of Psychology > http://joshuawiley.com/ > Senior Analyst, Elkhart Group Ltd. > http://elkhartgroup.com > Office: 260.673.5518 >-- Joshua F. Wiley Ph.D. Student, UCLA Department of Psychology http://joshuawiley.com/ Senior Analyst, Elkhart Group Ltd. http://elkhartgroup.com Office: 260.673.5518 [[alternative HTML version deleted]]
Seemingly Similar Threads
- Unexpected failure when calling new() with unnamed arg and
- "False" warning on "replacing previous import" when re-exporting identical object
- Are downstream dependencies rebuilt when a package is updated on CRAN?
- S4 Generics and NAMESPACE : justified warning ?
- .onLoad failing because could not find function "loadMethod"