in R_utils/cluster.R [11:27]
make_cluster <- function(ncores=NULL, libs=character(0), useXDR=FALSE)
{
if(is.null(ncores))
ncores <- max(2, parallel::detectCores(logical=FALSE) - 2)
cl <- parallel::makeCluster(ncores, type="PSOCK", useXDR=useXDR)
res <- try(parallel::clusterCall(
cl,
function(libs)
{
for(lib in libs) library(lib, character.only=TRUE)
},
libs
), silent=TRUE)
if(inherits(res, "try-error"))
parallel::stopCluster(cl)
else cl
}