rxGetNodeInfo: Provides information about all nodes on a cluster.
Description
Provides information about the capabilities of the nodes on a cluster.
Usage
rxGetNodeInfo( computeContext = NULL, ..., namesOnly = FALSE, makeRNodeNames = FALSE, getWorkersOnly = TRUE )
Arguments
computeContext
A distributed compute context (preferred), a jobInfo object, or (deprecated) a character scalar containing the name of the Microsoft HPC cluster head node being queried. If you are interested in information about a particular node, be sure that node is included in the group specified in the compute context, or that the compute context has groups=NULL
(HPC compute contexts). Setting nodes=NULL
and groups=NULL
or queue="all"
in the compute context is the best way to ensure getting information on all nodes.
...
additional arguments for modifying the compute context before requesting the node information. These arguments must be in the compute context constructor.
namesOnly
logical. If TRUE
, only a vector containing the names of the nodes will be returned.
makeRNodeNames
logical. If TRUE
, names of the nodes will be normalized for use as R variables. See rxMakeRNodeNames for details on name mangling.
getWorkersOnly
logical. If TRUE
, returns only those nodes within the cluster that are configured to actually execute jobs (where applicable; currently LSF only.).
Details
This function will return information on all the nodes on a given cluster if the nodes
slot of the compute context is NULL
and groups
and queue
are not
specified in the compute context. If either groups
or queue
is specified,
information is provided only for nodes within the specified groups or queue,
using the normal rules described in the compute context for taking the unions of node sets
and nodes in queues. The best way to get information on all nodes is to ensure that both
the nodes and groups slots are set to NULL
for HPC, and that nodes and
queues are set to NULL
and "all"
, respectively, for LSF.
Note that unlike rxGetAvailableNodes
, the return value of this function will
contain all nodes in the compute context regardless of their state.
(rxGetAvailableNodes returns only online nodes).
If the return value of this function is used to populate node names elsewhere and
namesOnly
is TRUE
, makeRNodeNames
should be set to the default FALSE
.
If namesOnly
is FALSE
, the nodeName
element of each list element should
be used, not the names of the list element, given that the list element names will be
mangled to be proper R names.
This operation is performed because names with a dash (-) are not permitted as variable names
(the R interpreter interprets this as a minus operation). Thus, the mangling process replaces the
dashes with an underscore _ to form the variable names.
See rxMakeRNodeNames for details on name mangeling.
Also, note that
node names are always forced to all capital letters (node names should be case agnostic, but in
some cluster related software, it is necessary to force them to be upper case.
In general, however, machine names are always treated as being case insensitive.
No other changes are made to node names during the mangling process.
)
Value
If namesOnly
is TRUE
, a character vector containing the names of the nodes.
If makeRNodeNames
is TRUE
, these names will be normalized for use as R variables.
If namesOnly
is FALSE
, a named list of lists, where each top level name is a node name
on the cluster, normalized for use as an R variable. See rxMakeRNodeNames for
more details.
Each named element in the list will contain some or all of the following:
nodeName
character scalar. The true name of the node (as opposd to the list item name).
cpuSpeed
float. The processor speed in MHz for Microsoft HPC, or the CPU factor for LSF.
memSize
integer. The amount of RAM in MB.
numCores
integer. The number of cores.
numSockets
integer. The number of CPU sockets.
nodeState
character scalar. May be either "online", "offline", "draining" (shutting down, but still with jobs in queue), or "unknown".
isReachable
logical. Determines if there is an operational network path between the head node and the given compute node.
groupsOrQueues
list of character scalars. The node groups (on MS HPC) or queues (under LSF) to which the node belongs.
Author(s)
Microsoft Corporation Microsoft Technical Support
See Also
rxGetAvailableNodes, rxMakeRNodeNames.
Examples
## Not run:
# Returns list of lists with information about each specified node
rxGetNodeInfo(myCluster, nodes = "comp1,comp2,comp3")
rxGetNodeInfo(myCluster, nodes = c("g1","g2","g3"))
# Returns a vector with the names of the nodes in the cluster, excluding the
# head node if computeOnHeadNode is set to FALSE in the compute context
rxGetNodeInfo(myCluster, namesOnly = TRUE)
# Node names in the returned vector are converted to valid R names
rxGetNodeInfo(myCluster, namesOnly = TRUE, makeRNodeNames = TRUE)
## End(Not run)