semEff (version 0.3.0)

pSapply: Parallel sapply

Description

Apply a function to a vector using parallel processing.

Usage

pSapply(
  X,
  FUN,
  parallel = "snow",
  ncpus = NULL,
  cl = NULL,
  add.obj = NULL,
  ...
)

Arguments

X

A vector object (numeric, character, or list).

FUN

Function to apply to the elements of X.

parallel

The type of parallel processing to use. Can be one of "snow", "multicore", or "no" (for none). If none, sapply is used instead.

ncpus

Number of system cores to use for parallel processing. If NULL (default), all available cores are used.

cl

Optional cluster to use if parallel = "snow". If NULL (default), a local cluster is created using the specified number of cores.

add.obj

A character vector of any additional object names to be exported to the cluster for parallel processing. Use if a required object or function cannot be found.

...

Arguments to parSapply or sapply.

Value

The output of FUN in a list, or simplified to a vector or array.

Details

This is a wrapper for parSapply from the parallel package, enabling (potentially) faster processing of a function over a vector of objects. Parallel processing via option "snow" (default) is carried out using a cluster of workers, which is automatically set up via makeCluster using all available system cores or a user supplied number of cores. The function then exports the required objects and functions to this cluster using clusterExport, after performing a (rough) match of all objects and functions in the current global environment to those referenced in the call to FUN (and also any calls in X). Any additional required objects can be supplied using add.obj.

See Also

parSapply, sapply