Extends the functionality of the run.jags family of functions to use with Apple Xgrid distributed computing clusters. Jobs can either be run synchronously using xgrid.(auto)run.jags in which case the process will wait for the model to complete before returning the results, or asynchronously using xgrid.submit.jags in which case the process will terminate on submission of the job and results are retrieved at a later time using xgrid.results.jags. The latter function can also be used to check the progress of incomplete simulations without stopping or retrieving the full job. Access to an Xgrid cluster with JAGS (although not necessarily R) installed is required. Due to the dependance on Xgrid software to perform the underlying submission and retrieval of jobs, these functions can only be used on machines running Mac OS X. Further details of required environmental variables and the optional mgrid script to enable multi-task jobs can be found in the details section.
*Note* Apple has discontinued Xgrid from Mac OS 10.8 onwards, and these functions are deprecated as of runjags version 2.
xgrid.run.jags(model, max.threads=Inf, JAGSversion=">=2.0.0",
email=NA, profiling=TRUE, cpuarch=NA, minosversion=NA,
queueforserver=FALSE, hostnode=NA, forcehost=FALSE,
ramrequired=10, jobname=NA, cleanup=TRUE,
showprofiles=FALSE, jagspath='/usr/local/bin/jags',
mgridpath=system.file("xgrid","mgrid.sh", package="runjags"),
hostname=Sys.getenv("XGRID_CONTROLLER_HOSTNAME"),
password=Sys.getenv("XGRID_CONTROLLER_PASSWORD"), ...)
xgrid.autorun.jags(model, max.threads=Inf, JAGSversion=">=2.0.0",
email=NA, profiling=TRUE, cpuarch=NA, minosversion=NA,
queueforserver=FALSE, hostnode=NA, forcehost=FALSE,
ramrequired=10, jobname=NA, cleanup=TRUE,
showprofiles=FALSE, jagspath='/usr/local/bin/jags',
mgridpath=system.file("xgrid","mgrid.sh", package="runjags"),
hostname=Sys.getenv("XGRID_CONTROLLER_HOSTNAME"),
password=Sys.getenv("XGRID_CONTROLLER_PASSWORD"), ...)
xgrid.extend.jags(runjags.object, max.threads=Inf, JAGSversion=">=2.0.0",
email=NA, profiling=TRUE, cpuarch=NA, minosversion=NA,
queueforserver=FALSE, hostnode=NA, forcehost=FALSE,
ramrequired=10, jobname=NA, cleanup=TRUE,
showprofiles=FALSE, jagspath='/usr/local/bin/jags',
mgridpath=system.file("xgrid","mgrid.sh", package="runjags"),
hostname=Sys.getenv("XGRID_CONTROLLER_HOSTNAME"),
password=Sys.getenv("XGRID_CONTROLLER_PASSWORD"), ...)
xgrid.autoextend.jags(runjags.object, max.threads=Inf, JAGSversion=">=2.0.0",
email=NA, profiling=TRUE, cpuarch=NA, minosversion=NA,
queueforserver=FALSE, hostnode=NA, forcehost=FALSE,
ramrequired=10, jobname=NA, cleanup=TRUE,
showprofiles=FALSE, jagspath='/usr/local/bin/jags',
mgridpath=system.file("xgrid","mgrid.sh", package="runjags"),
hostname=Sys.getenv("XGRID_CONTROLLER_HOSTNAME"),
password=Sys.getenv("XGRID_CONTROLLER_PASSWORD"), ...)
xgrid.submit.jags(model, max.threads=Inf, JAGSversion=">=2.0.0",
email=NA, profiling=TRUE, cpuarch=NA, minosversion=NA,
queueforserver=FALSE, hostnode=NA, forcehost=FALSE,
ramrequired=10, jobname=NA, jagspath='/usr/local/bin/jags',
mgridpath=system.file("xgrid", "mgrid.sh", package="runjags"),
hostname=Sys.getenv("XGRID_CONTROLLER_HOSTNAME"),
password=Sys.getenv("XGRID_CONTROLLER_PASSWORD"), ...)
xgrid.results.jags(background.runjags.object, wait=TRUE, cleanup=TRUE)run.jags function.extend.jags function.run.jags family functions as if the model were being run
locally.run.jags family of functions.These functions allow JAGS models to be run on Xgrid distributed computing clusters from within R using the same syntax as required to run the models locally. All the functionality could be replicated by saving all necessary objects to files and using the Xgrid command line utility to submit and retrieve the job manually; these functions merely provide the convenience of not having to do this manually. Xgrid support is only available on Mac OS X machines running OS X 10.5-10.7 (Xgrid support was discontinued in Mac OS X 10.8).
The xgrid controller hostname and password can also be set as environmental variables. The command line version of R knows about environmental variables set in the .profile file, but unfortunately the GUI version does not and requires them to be set from within R using:
Sys.setenv(XGRID_CONTROLLER_HOSTNAME="
Sys.setenv(XGRID_CONTROLLER_PASSWORD="
(These lines could be copied into your .Rprofile file for a 'set and forget' solution)
Note that the runjags package also contains a utility shell script called 'mgrid' that enhances the capabilities of Xgrid substantially - to install this from the command line navigate to the folder given by system.file("xgrid", package="runjags") and from the terminal type 'sudo cp mgrid.sh /usr/local/bin/mgrid (or similar) to make the script visible in your search path. Help on the mgrid script can then be obtained by typing 'mgrid' (with no arguments) at the command line.
run.jags, autorun.jags and
runjags-class for more information on JAGS models,
including operations on parallel processors
run.jags.study for functions to execute JAGS model
validation exercises over parallel processors