blob: 042ec246d46fab6cc63d97bfb38fd8edd157d18e [file] [log] [blame]
% File src/library/parallel/man/unix/mcaffinity.Rd
% Part of the R package, https://www.R-project.org
% Copyright 2009-2014 R Core Team
% Distributed under GPL 2 or later
\name{mcaffinity}
\alias{mcaffinity}
\title{Get or Set CPU Affinity Mask of the Current Process}
\description{
\code{mcaffinity} retrieves or sets the CPU affinity mask of the
current process, i.e., the set of CPUs the process is allowed to be
run on. (CPU here means logical CPU which can be CPU, core or
hyperthread unit.)
}
\usage{
mcaffinity(affinity = NULL)
}
\arguments{
\item{affinity}{specification of the CPUs to lock this process to
(numeric vector) or \code{NULL} if no change is requested}
}
\details{
\code{mcaffinity} can be used to obtain (\code{affinity = NULL})
or set the CPU affinity mask of the current process. The affinity mask
is a list of integer CPU identifiers (starting from 1) that this
process is allowed to run on. Not all systems provide user access to
the process CPU affinity, in cases where no support is present at all
\code{mcaffinity()} will return \code{NULL}. Some systems may take
into account only the number of CPUs present in the mask.
Typically, it is legal to specify larger set than the number of
logical CPUs (but at most as many as the OS can handle) and the system
will return back the actually present set.
}
\value{
\code{NULL} if CPU affinity is not supported by the system or an
integer vector with the set of CPUs in the active affinity mask for
this process (this may be different than \code{affinity}).
}
\author{
Simon Urbanek.
}
\seealso{
\code{\link{mcparallel}}
}
\keyword{interface}