# US 12,112,207 B2 · Selecting nodes in a cluster of nodes for running computational jobs

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 12,112,207 B2
- Document ID: US12112207B2
- Status: Granted
- Kind: B2
- Application number: 17/226,296
- Filed: 2021-04-09
- Published: 2022-10-13
- Granted: 2024-10-08
- Earliest claimed: 2021-04-09
- Assignees: Hewlett Packard Enterprise Development LP
- Applicants: Hewlett Packard Enterprise Development LP
- Inventors: David Strenski
- Web page: https://patentgrep.com/patent/US12112207B2

## CPC

- G06F 9/5027: {the resource being a machine, e.g. CPUs, Servers, Terminals}
- G06F 9/505: {considering the load}
- G06F 9/5044: {considering hardware capabilities}
- G06F 9/5072: {Grid computing}
- G06F 9/5083: {Techniques for rebalancing the load in a distributed system}
- G06F 2209/501: Performance criteria
- G06F 2209/508: Monitor
- Y02D 10/00: Energy efficient computing, e.g. low power processors, power management or thermal management
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- Y02D: CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE

## Abstract

Examples disclosed herein relate to selection of a set of nodes in a HPC system for running one or more computational jobs. In some examples, the selection of the set of nodes includes gathering information about a cluster of nodes in a high-performance computing system. The HPC system may be in a production state with one or more computational workloads getting executed thereon. In some examples, periodically sending one or more test-computing jobs for execution on each node to measure one or more performance metrics thereof. Receiving measured performance metrics from each node, in response to the one or more test-computing jobs executed thereon. Recording in a database, the measured performance metrics received from each node. Selecting the set of nodes from the cluster of nodes, based on the database, and based on a request received to nm one or more computational jobs on the HPC system.

## Claims

### Claim 1

A method comprising: gathering, by a processing element of a scheduler node, information about a cluster of nodes in a high-performance computing system, wherein the high-performance computing system is in a production state with one or more computational workloads getting executed thereon; periodically sending, by the processing element, one or more test-computing jobs for execution on each node, of the cluster of nodes, to measure one or more performance metrics thereof; receiving, by the processing element, measured performance metrics from each node in response to the one or more test-computing jobs executed thereon; recording, by the processing element, in a database, the measured performance metrics received from each node, wherein recording the measured performance metrics comprises: determining, by the processing element, whether to update the database by comparing the measured performance metrics of a current instance with the performance metrics recorded in the database at a previous instance, for each node of the cluster of nodes: and in response to determining, based on the comparison, a change in the performance metrics, updating, by the processing element, the database with the measured performance metrics of the current instance; receiving a request to run one or more computational jobs on the high-performance computing system; selecting, by the processing element based on the received request and the measured performance metrics recorded in the database, a set of nodes from the cluster of nodes for running the requested one or more computational jobs on the high-performance computing system; and sorting, by the processing element, the cluster of nodes in the fastest to slowest order of an actual processing speed based on a performance metric selected from the measured performance metrics.

### Claim 2 (depends on 1)

The method of claim 1, wherein the one or more test-computing jobs are sent periodically after a pre-defined time period, and wherein recording, by the processing element, the measured performance metrics comprises: updating the database with the measured performance metrics after the pre-defined time period.

### Claim 3 (depends on 1)

The method of claim 1, wherein the one or more test-computing jobs are sent periodically after a dynamic time period, wherein the dynamic time period is defined based on the one or more computational jobs, and wherein recording, by the processing element, the measured performance metrics comprises: updating the database with the measured performance metrics after the dynamic time period.

### Claim 4 (depends on 3)

The method of claim 3, further comprises:
sorting, by the processing element, the cluster of nodes in a relative order based on a performance metric selected from the measured performance metrics.

### Claim 5 (depends on 1)

The method of claim 1, wherein the database comprises:
a plurality of sub-lists, wherein each sub-list of the plurality of sub-lists comprises information about the cluster of nodes sorted in a relative order based on a performance metric selected from the measured performance metrics.

### Claim 6 (depends on 5)

The method of claim 5, further comprises:
selecting, by the processing element, a first sub-list from the plurality of sub-lists based on a category of request, to run the one or more computational jobs on the high-performance computing system; and
selecting, by the processing element, the set of nodes from the first sub-list.

### Claim 7 (depends on 6)

The method of claim 6, further comprises:
determining, by the processing element, the category of request by comparing the request received with a reference data, wherein the reference data is provided on one of the scheduler node and an external storage medium.

### Claim 8 (depends on 6)

The method of claim 6, wherein the plurality of sub-lists comprises a default sub-list, wherein the default sub-list is selected when the category of request is unavailable.

### Claim 9 (depends on 6)

The method of claim 6, wherein selecting, by the processing element, the set of nodes from the first sub-list includes:
selecting, by the processing element, a group of nodes having substantially similar performance metrics, from the first sub-list, when the category of request involves parallel processing.

### Claim 10 (depends on 1)

The method of claim 1, wherein the database comprises:
a plurality of sub-lists, wherein each sub-list, from the plurality of sub-lists, comprises the cluster of nodes sorted in relative order based on a combination of two or more performance metrics selected from the measured performance metrics.

### Claim 11 (depends on 1)

The method of claim 1, further comprises:
periodically sending, by the processing element, one or more test-computing jobs for execution between two nodes, of the cluster of nodes, to measure at least one linking performance metric.

### Claim 12 (depends on 11)

The method of claim 11, further comprises:
selecting, by the processing element, a group of nodes having substantially similar linking performance metrics, when a category of request involves one or more of networking, communication, and linking between nodes.

### Claim 13

A scheduler node comprising: a processing element; and a non-transitory storage medium storing instruction that, when executed by the processing element, cause the processing element to: gather information about a cluster of nodes in a high-performance computing system, wherein the high-performance computing system is in a production state with one or more computational workloads getting executed thereon; periodically send one or more test-computing jobs for execution on each node, of the cluster of nodes, to measure one or more performance metrics thereof; receive measured performance metrics from each node, in response to the one or more test-computing jobs executed thereon; record in a database the measured performance metrics received from each node, wherein recording the measured performance metrics comprises: determining, by the processing element, whether to update the database by comparing the measured performance metrics of a current instance with the performance metrics recorded in the database at a previous instance, for each node of the cluster of nodes; and in response to determining, based on the comparison, a change in the performance metrics, updating, by the processing element, the database with the measured performance metrics of the current instance; receive a request to run one or more computational jobs on the high-performance computing system; select, based on the received request and the measured performance metrics recorded in the database, a set of nodes from the cluster of nodes for running the requested one or more computational jobs on the high-performance computing system; and sort, by the processing element, the cluster of nodes in the fastest to slowest order of an actual processing speed based on a performance metric selected from the measured performance metrics.

### Claim 14 (depends on 13)

The scheduler node of claim 13, wherein the performance metrics includes a processing speed, a storage capacity, and a networking speed.

### Claim 15 (depends on 13)

The scheduler node of claim 13, wherein the request received is from one or more clients, out of a plurality of clients, wherein the plurality of clients is networked with the scheduler node and with the high-performance computing system through a network.

### Claim 16 (depends on 13)

The scheduler node of claim 13, wherein each of the one or more test-computing jobs are of a low priority, and the one or more test-computing jobs are executed on each node, of the cluster of nodes when each node becomes available.

### Claim 17

A non-transitory storage medium comprising instructions, the instructions executable by a processing element of a scheduler node to: gather information about a cluster of nodes in a high-performance computing system, wherein the high-performance computing system is in a production state with one or more computational workloads getting executed thereon; periodically send one or more test-computing jobs for execution on each node, of the cluster of nodes, to measure one or more performance metrics thereof; receive measured performance metrics from each node, in response to the one or more test-computing jobs executed thereon; record in a database the measured performance metrics received from each node, wherein recording the measured performance metrics comprises: determining, by the processing element, whether to update the database by comparing the measured performance metrics of a current instance with the performance metrics recorded in the database at a previous instance, for each node of the cluster of nodes; and in response to determining, based on the comparison, a change in the performance metrics, updating, by the processing element, the database with the measured performance metrics of the current instance; receive a request to run one or more computational jobs on the high-performance computing system; select, based on the received request and the measured performance metrics recorded in the database, a set of nodes from the cluster of nodes for running the requested one or more computational jobs on the high-performance computing system; and sort, by the processing element, the cluster of nodes in the fastest to slowest order of an actual processing speed based on a performance metric selected from the measured performance metrics.

### Claim 18 (depends on 17)

The non-transitory storage medium of claim 17, further comprising instructions to:
periodically send, by the processing element, one or more test-computing jobs for execution between two nodes, of the cluster of nodes, to measure at least one linking performance metric;
receive measured linking performance metrics, in response to the one or more test-computing jobs executed between the two nodes; and
record in the database the measured linking performance metrics received.

### Claim 19 (depends on 17)

The non-transitory storage medium of claim 17, further comprising instructions to:
sort the cluster of nodes in a fastest to slowest order, based on a performance metric selected from the measured performance metrics; and
select the set of nodes, from sorted cluster of nodes, in a sequential order, to run the one or more computational jobs on the high-performance computing system.
