Apply a function to a vector using parallel processing.
Usage
pSapply(
X,
FUN,
parallel = c("snow", "multicore", "no"),
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"
(default),"multicore"
(not available on Windows), or"no"
(for none). See Details.- 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"
. IfNULL
(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. Use if a required object or function cannot be found.
- ...
Additional arguments to
parSapply()
,mcmapply()
, orsapply()
(note: arguments"simplify"
and"SIMPLIFY"
are both allowed).
Details
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
.