Patent ID: 9665401
Date: 2017-05-30
CPC Classifications: G06F

Claim:
1. A computer implemented method for dynamically changing the allocation of processing units on a multi-nodal computer system comprising the steps of: executing an application having a plurality of jobs, each with at least one processing unit on a plurality of nodes, where each node has at least one central processing unit (CPU) and a memory; collecting metrics associated with the multi-nodal computer system, the application, the jobs, the plurality of nodes and the processing units; analyzing the metrics; where there is an over utilized resource perform the steps of: identifying jobs affecting the over utilized resource; assessing potential job and processing unit permutations; dynamically changing the allocation of the processing units on the plurality of compute nodes based on the collected metrics by combining at least two processing units into a job on a single node, and further dynamically changing the allocation of the processing units by splitting a job into multiple jobs on a plurality of nodes, wherein interprocess communication between processing units of the job is within a node before splitting the job, after splitting the job the interprocess communication is handled by the multi-nodal computer system in a way that is invisible to the processing unit over a communication link between the different nodes; wherein the metrics associated with the processing units are selected from: CPU utilization by the processing unit, memory utilization by the processing unit, data throughput of the processing unit, and data latency for the processing unit; wherein the metrics associated with the application are selected from: aggregate CPU utilization by the application, aggregate memory utilization by the application, a result throughput for the application, and a result latency for the application; wherein the metrics associated with the node are selected from: CPU utilization for the node and memory utilization for the node; and wherein the metrics associated with the computer system are selected from: aggregate CPU utilization across the multi-nodal system, aggregate memory utilization across the multi-nodal system, aggregate network load across the multi-nodal system, and node-to-node network utilization.