Create and Use Custom Node Groups
Applies To: Windows HPC Server 2008
This topic describes common criteria for creating custom node groups, and how you can use node groups to partition, schedule, monitor, and manage your Windows® HPC Server 2008 cluster.
This topic also includes an example of how to sort nodes and assign them to a new node group based on the Location
property.
Using custom node groups
A node group is a named collection of compute nodes. Nodes can belong to more than one group. You can use custom node groups to:
Monitor, manage, and diagnose all the nodes in a group at once.
Filter the node list by node group, and then run commands or perform actions on the returned subset of nodes.
Simplify job resource allocation. Define the
NodeGroups
job property in your job templates so that certain types of jobs run on certain types of nodes. For example, for jobs that require “AppX”, create a template with the node group property equal to “HaveAppX”.Facilitate resource selection for individual jobs. For example, if a user submits a job that specifies the node groups “HaveAppX” and “HaveBigMemory”, then the job will only run on nodes that fall into both groups.
For an example of how to use node groups in conjunction with job templates, see Steps: Partitioning a Group of Nodes for a Group of Users.
Common criteria for grouping nodes
The following list describes common criteria for grouping nodes, and provides some examples of how you can use these types of node groups to manage your cluster:
Physical location (by datacenter or chassis): Perform maintenance tasks on nodes based on datacenter or rack location.
Network location (shared switch): Schedule jobs based on network affinity of nodes for faster input/output. Run connectivity diagnostics based on the network location of a node.
Installed applications or services: Specify application-based node groups in job templates or when submitting a job. Run latency diagnostics, such as an MPI Ping Pong test, between nodes that have specific applications or services installed.
Hardware configuration: Create groups such as “HaveBigMemory” or “HaveGPU” (Graphics Processing Unit). Specify hardware-based node groups in job templates or when submitting a job.
Staging or production use: Partition staging nodes for testing new applications and debugging.
Administrator or user group: Partition your cluster according to who runs or uses it.
Example: Sorting nodes and adding them to new groups based on location
The node Location
property can store data center, rack, and chassis information about the node.
The following procedure describes how you can use either HPC Cluster Manager or HPC PowerShell to sort your nodes by location, add the nodes to new node groups based on their data center value, and run diagnostic tests to verify node connectivity.
In the example, the Data Center values are either “East” or “West”, and the nodes are added to groups called “DataCenterEast” and “DataCenterWest”, respectively.
Steps | HPC Cluster Manager | HPC PowerShell |
---|---|---|
1. View the location property values for all nodes, and sort nodes by location. |
|
|
2. Create a new node group called “DataCenterEast” and add nodes to the new node group. |
|
|
3. Create a new node group called “DataCenterWest” and add nodes to the new node group. |
|
|
4. Run the Connectivity suite diagnostic tests on all nodes in “DataCenterEast”. |
|
|
Notes about the PowerShell syntax in the example
Use the
select
cmdlet to specify the properties you want to see, andsort
to organize the output.The PowerShell escape character is the backward apostrophe (
`
). Use the backward apostrophe (`
) to make the double quotes (“
) around the data center value literal.Use the
where
cmdlet to filter the output from the node list, then use the pipe symbol (“|”) to pipe the filtered list to theAdd-HpcGroup
cmdlet.$_
is a placeholder for the objects that are piped into thewhere
cmdlet. You can evaluate any property of the object that you pipe in. For example:To get all nodes with less than (
-lt
) 8 cores, enter the following command:Get-HpcNode|where {$_.ProcessorCores –lt 8}
To get all nodes with memory greater than or equal to (
-ge
) 4000 MB, enter the following command:Get-HpcNode|where {$_.Memory –ge 4000}
The cmdlets
select
andwhere
are shorthand aliases forselect-object
andwhere-object
, respectively.For more information about Windows PowerShell commands, see Windows PowerShell Core (https://go.microsoft.com/fwlink/?LinkId=154268)
Additional considerations
To add or modify node location information, right-click one or more nodes in HPC Cluster Manager, then click Edit. Alternately, you can perform the same action using the Set-HpcNode cmdlet:
Set-HpcNode –Name Node1 –DataCenter East –Rack 01 –Chassis 001
If you are adding compute nodes to your cluster by importing a node XML file, you can associate properties to compute nodes at the time of deployment. For example, in the XML file you can specify the names of the node groups to which each node should be added. For more information, see Creating a Node XML File in Windows HPC Server 2008 Step-by-Step Guide.