R/multicore_funtions.R

Defines functions .restoreParallel .getParallel .process_parallel hsdar_parallel

Documented in hsdar_parallel

hsdar_parallel <- function()
{
  sort(c("transformSpeclib", "glm.nri", "noiseFiltering", "apply"
         ))
}

.process_parallel <- function()
{
  process_parallel <- list(parallel = any(search() %in% c("package:doMC", "package:doMPI")), dofun = NULL, donestedfun = NULL)
  if (process_parallel[[1]])
  {
    if (.getParallel())
    {   
      loadNamespace("foreach")
      process_parallel$dofun <- if (foreach::getDoParWorkers() > 1) foreach::`%dopar%` else  foreach::`%do%`
      process_parallel$donestedfun <- foreach::`%:%`
    } else {
      process_parallel[[1]] <- FALSE
    }
  }  
  return(process_parallel)
}

.getParallel <- function()
{
  res <- .Fortran("adminparallel",
                  flag    = as.integer(1),
                  process = as.integer(0),
                  PACKAGE = "hsdar"
                 )$process
  return(res == -1)
}
  
  
.restoreParallel <- function()
{
  res <- .Fortran("adminparallel",
                  flag    = as.integer(0),
                  process = as.integer(0),
                  PACKAGE = "hsdar"
                 )
}

Try the hsdar package in your browser

Any scripts or data that you put into this service are public.

hsdar documentation built on March 18, 2022, 6:35 p.m.