| makeCluster {parallel} | R Documentation |
Create a Parallel Socket Cluster
Description
Creates a set of copies of R running in parallel and communicating over sockets.
Usage
makeCluster(spec, type, ...)
makePSOCKcluster(names, ...)
makeForkCluster(nnodes = getOption("mc.cores", 2L), ...)
stopCluster(cl)
Arguments
spec |
A specification appropriate to the type of cluster. |
names |
Either a character vector of host names on which to run the worker copies of R, or a positive integer (in which case that number of copies is run on ‘localhost’). |
nnodes |
The number of nodes to be forked. |
type |
One of the supported types: see ‘Details’. |
... |
Options to be passed to the function spawning the workers. See ‘Details’. |
cl |
an object of class |
Details
makeCluster creates a cluster of one of the supported types.
The default type, "PSOCK", calls makePSOCKcluster. Type
"FORK"calls makeForkCluster. Other types are passed to
package snow.
makePSOCKcluster is very similar to makeSOCKcluster in
package snow. It runs Rscript on the specified
host(s) to set up a worker process which listens on a socket for
expressions to evaluate, and returns the results (as serialized
objects).
makeForkCluster is merely a stub on Windows. On Unix-alike
platforms it creates the worker process by forking.
The workers are most often running on the same host as the master, when no options need be set.
Several options are supported (mainly for makePSOCKcluster):
masterThe host name of the master, as known to the workers. This may not be the same as it is known to the master, and on private subnets it may be necessary to specify this as a numeric IP address. For example, Mac OS X is likely to detect a machine as ‘somename.local’, a name known only to itself.
portThe port number for the socket connection, default taken from the environment variable R_PARALLEL_PORT, then
10187.timeoutThe timeout in seconds for that port. Default 30 days (and the POSIX standard only requires values up to 31 days to be supported).
outfileWhere to direct the
stdoutandstderrconnection output from the workers.""indicates no redirection (which may only be useful for workers on the local machines). Defaults to ‘/dev/null’ (‘nul:’ on Windows). The other possibility is a file path on the worker's host. Files will be opened in append mode, as all workers log to the same file.homogeneousLogical. Are all the hosts running identical setups, so
Rscriptcan be launched using its full path on the master? Otherwise it has to be in the default path on the other hosts.rscriptThe path to
Rscripton the workers. Defaults to the full path on the master.reniceA numerical ‘niceness’ to set for the worker processes, e.g.
15for a low priority. OS-dependent: seepsnicefor details.rshcmdThe command to be run on the master to launch a process on another host. Defaults to
ssh.userThe user name to be used when communicating with another host.
manualLogical. If true the workers will need to be run manually.
methodsLogical. If true (default) the workers will load the methods package: not loading it saves ca 30% of the startup time of the cluster.
Function makeForkCluster creates a socket cluster by forking
(and hence is not available on Windows). It supports options
port, timeout and outfile.
It is good practice to shut down the workers by calling
stopCluster: however the workers will terminate
themselves once the socket on which they are listening for commands
becomes unavailable, which it should if the master R session is
completed (or its process dies).
Value
An object of class c("SOCKcluster", "cluster").
Author(s)
Luke Tierney and R Core.
Derived from the snow package.