##### https://github.com/cran/doParallel
Tip revision: 54faaa7
registerDoParallel.Rd
\name{registerDoParallel}
\alias{registerDoParallel}
\alias{stopImplicitCluster}
\title{registerDoParallel}
\description{
The \code{registerDoParallel} function is used to register the
parallel backend with the \code{foreach} package.
}
\usage{
registerDoParallel(cl, cores=NULL, \dots)
stopImplicitCluster()
}
\arguments{
\item{cl}{A cluster object as returned by \code{makeCluster}, or the number
of nodes to be created in the cluster. If not specified, on Windows a
three worker cluster is created and used.}
\item{cores}{The number of cores to use for parallel execution. If not
specified, the number of cores is set to the value of
\code{options("cores")}, if specified, or to one-half the number of cores detected
by the \code{parallel} package.}
\item{\dots}{Package options.  Currently, only the \code{nocompile} option
is supported.  If \code{nocompile} is set to \code{TRUE}, compiler
support is disabled.}
}
\details{
The \code{parallel} package from R 2.14.0 and later provides functions for
parallel execution of R code on machines with multiple cores or processors
or multiple computers.  It is essentially a blend of the \code{snow} and
\code{multicore} packages. By default, the \code{doParallel} package uses
\code{snow}-like functionality.  The \code{snow}-like functionality
should work fine on Unix-like systems, but the \code{multicore}-like
functionality is limited to a single sequential worker on Windows systems.
On workstations with multiple cores running Unix-like operating systems,
the system \code{fork} call is used to spawn copies of the current process.

The \code{doParallel} backend supports both multicore and snow options passed
through the \code{foreach} function.
The supported multicore options are \code{preschedule}, \code{set.seed},
\code{silent}, and \code{cores}, which are analogous to the similarly named
arguments to \code{\link{mclapply}}, and are passed using the
\code{.options.multicore} argument to \code{foreach}. The supported snow options are
\code{preschedule}, which like its multicore analog can be used to chunk the
tasks so that each worker gets a prescheduled chunk of tasks, and
\code{attachExportEnv}, which can be used to attach the export environment
in certain cases where R's lexical scoping is unable to find a needed
export. The snow options are passed to \code{foreach} using the \code{.options.snow}
argument.

The function \code{stopImplicitCluster} can be used in vignettes and other places
where it is important to explicitly close the implicitly created cluster.
}
\examples{
cl <- makePSOCKcluster(2)
registerDoParallel(cl)
m <- matrix(rnorm(9), 3, 3)
foreach(i=1:nrow(m), .combine=rbind) %dopar%  (m[i,] / mean(m[i,]))
stopCluster(cl)
}
\keyword{utilities}