Apply a function to a vector using parallel processing.
pSapply( X, FUN, parallel = c("snow", "multicore", "no"), ncpus = NULL, cl = NULL, add.obj = NULL, ... )
| X | A vector object (numeric, character, or list). |
|---|---|
| FUN | Function to apply to the elements of |
| parallel | The type of parallel processing to use. Can be one of
|
| ncpus | Number of system cores to use for parallel processing. If |
| cl | Optional cluster to use if |
| add.obj | A character vector of any additional object names to be exported to the cluster. Use if a required object or function cannot be found. |
| ... | Additional arguments to |
The output of FUN in a list, or simplified to a vector or array.
This is a wrapper for parallel::parSapply() ("snow") or
parallel::mcmapply()
("multicore"), enabling (potentially) faster processing of a function
over a vector of objects. If parallel = "no", sapply() is used instead.
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 object names
can be supplied using add.obj.