# US 11,442,776 B2 · Execution job compute unit composition in computing clusters

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

- Number: US 11,442,776 B2
- Document ID: US11442776B2
- Status: Granted
- Kind: B2
- Application number: 17/119,165
- Filed: 2020-12-11
- Published: 2022-06-16
- Granted: 2022-09-13
- Earliest claimed: 2020-12-11
- Assignees: Liqid Inc.
- Applicants: Liqid Inc.
- Inventors: Josiah Clark
- Web page: https://patentgrep.com/patent/US11442776B2

## CPC

- G06F 9/4887: {involving deadlines, e.g. rate based, periodic}
- G06F 9/5027: {the resource being a machine, e.g. CPUs, Servers, Terminals}
- G06F 9/5038: {considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration (scheduling strategies G06F9/4881 and subgroups)}
- G06F 9/5044: {considering hardware capabilities}
- G06F 9/505: {considering the load}
- G06F 9/5055: {considering software capabilities, i.e. software resources associated or available to the machine}
- G06F 9/5061: {Partitioning or combining of resources}
- H04L 67/10: in which an application is distributed across nodes in the network (software deployment G06F8/60; multiprogramming arrangements G06F9/46)
- H04L 69/18: Multiprotocol handlers, e.g. single devices capable of handling multiple protocols
- G06F 2209/5011: Pool
- G06F 2209/505: Clust
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

Deployment of arrangements of physical computing components coupled over a communication fabric are presented herein. In one example, a method includes receiving execution jobs directed to a computing cluster comprising a pool of computing components coupled to at least a communication fabric. Based on properties of the execution jobs, the method includes determining resource scheduling for handling the execution jobs, the resource scheduling indicating timewise allocations of resources of the computing cluster, and initiating the execution jobs on the computing cluster according to the resource scheduling by at least instructing the communication fabric to compose compute units comprising sets of computing components selected from among the pool of computing components to handle the execution jobs. Responsive to completions of the execution jobs, the compute units are decomposed back into the pool of computing components.

## Claims

### Claim 1

A method comprising:
receiving execution jobs directed to a computing cluster comprising a pool of computing components coupled to at least a communication fabric;
based on properties of the execution jobs, determining resource scheduling for handling the execution jobs, the resource scheduling indicating timewise allocations of resources of the computing cluster;
initiating the execution jobs on the computing cluster according to the resource scheduling by at least instructing the communication fabric to compose compute units comprising sets of computing components selected from among the pool of computing components to handle the execution jobs, wherein responsive to completions of the execution jobs, the compute units are decomposed back into the pool of computing components.

### Claim 2 (depends on 1)

The method of claim 1, further comprising:
in accordance with the resource scheduling, instructing the communication fabric to deploy software components to the compute units for running the execution jobs once each of the compute units are formed.

### Claim 3 (depends on 1)

The method of claim 1, further comprising:
responsive to the completions of the execution jobs, instructing the communication fabric to decompose the compute units by removing a corresponding logical isolation for the compute units such that computing components of the compute units are made available for composition into additional compute units.

### Claim 4 (depends on 1)

The method of claim 1, wherein the resource scheduling comprises one or more data structures relating identifiers for the execution jobs, indications of the sets of computing components needed to run each of the execution jobs, timeframes to initiate composition and decomposition of the compute units, and indications of software components to deploy to the compute units for the execution jobs.

### Claim 5 (depends on 1)

The method of claim 1, wherein the pool of computing components comprises central processing units (CPUs), co-processing units, graphics processing units (GPUs), tensor processing units (TPUs), field programmable gate arrays (FPGAs), application specific integrated circuits (ASICs), storage drives, and network interface controllers (NICs) coupled to at least the communication fabric.

### Claim 6 (depends on 5)

The method of claim 5, wherein the pool of computing components comprise computing components coupled to more than one communication fabric each comprising a different communication protocol.

### Claim 7 (depends on 1)

The method of claim 1, wherein the communication fabric comprises communication protocols from at least one among Peripheral Component Interconnect Express (PCIe), Gen-Z, Compute Express Link (CXL), NVLink, Cache Coherent Interconnect for Accelerators (CCIX), Open Coherent Accelerator Processor Interface (OpenCAPI), Ethernet, and InfiniBand, and FibreChannel.

### Claim 8 (depends on 1)

The method of claim 1, wherein instructing the communication fabric to compose the compute units comprises instructing the communication fabric to form logical isolations within the communication fabric communicatively coupling the sets of computing components, and wherein the logical isolations each allow computing components within each of the sets of computing components to communicate over the communication fabric only within corresponding logical isolations.

### Claim 9

An apparatus, comprising:
one or more computer readable storage media;
a processing system operatively coupled with the one or more computer readable storage media; and
program instructions stored on the one or more computer readable storage media that, based on being read and executed by the processing system, direct the processing system to at least:
receive execution jobs directed to a computing cluster comprising a pool of computing components coupled to at least a communication fabric;
based on properties of the execution jobs, determine resource scheduling for handling the execution jobs, the resource scheduling indicating timewise allocations of resources of the computing cluster;
initiate the execution jobs on the computing cluster according to the resource scheduling by at least instructing the communication fabric to compose compute units comprising sets of computing components selected from among the pool of computing components to handle the execution jobs, wherein responsive to completions of the execution jobs, the compute units are decomposed back into the pool of computing components.

### Claim 10 (depends on 9)

The apparatus of claim 9, comprising further program instructions, based on being executed by the processing system, direct the processing system to at least:
in accordance with the resource scheduling, instruct the communication fabric to deploy software components to the compute units for running the execution jobs once each of the compute units are formed.

### Claim 11 (depends on 9)

The apparatus of claim 9, comprising further program instructions, based on being executed by the processing system, direct the processing system to at least:
responsive to the completions of the execution jobs, instruct the communication fabric to decompose the compute units by removing a corresponding logical isolation for the compute units such that computing components of the compute units are made available for composition into additional compute units.

### Claim 12 (depends on 9)

The apparatus of claim 9, wherein the resource scheduling comprises one or more data structures relating identifiers for the execution jobs, indications of the sets of computing components needed to run each of the execution jobs, timeframes to initiate composition and decomposition of the compute units, and indications of software components to deploy to the compute units for the execution jobs.

### Claim 13 (depends on 9)

The apparatus of claim 9, wherein the pool of computing components comprises central processing units (CPUs), co-processing units, graphics processing units (GPUs), tensor processing units (TPUs), field programmable gate arrays (FPGAs), application specific integrated circuits (ASICs), storage drives, and network interface controllers (NICs) coupled to at least the communication fabric.

### Claim 14 (depends on 13)

The apparatus of claim 13, wherein the pool of computing components comprise computing components coupled to more than one communication fabric each comprising a different communication protocol.

### Claim 15 (depends on 9)

The apparatus of claim 9, wherein the communication fabric comprises communication protocols from at least one among Peripheral Component Interconnect Express (PCIe), Gen-Z, Compute Express Link (CXL), NVLink, Cache Coherent Interconnect for Accelerators (CCIX), Open Coherent Accelerator Processor Interface (OpenCAPI), Ethernet, and InfiniBand, and FibreChannel.

### Claim 16 (depends on 9)

The apparatus of claim 9, comprising further program instructions, based on being executed by the processing system, direct the processing system to at least:
instruct the communication fabric to compose the compute units by at least instructing the communication fabric to form logical isolations within the communication fabric communicatively coupling the sets of computing components, wherein the logical isolations each allow computing components within each of the sets of computing components to communicate over the communication fabric only within corresponding logical isolations.

### Claim 17

A computing system, comprising:
a job interface configured to receive execution jobs for handling by the computing system;
a management processor configured to:
form a free pool of computing components coupled to at least a communication fabric;
based on properties of the execution jobs, determine resource scheduling for handling the execution jobs, the resource scheduling indicating timewise allocations of resources from the free pool of computing components;
initiate the execution jobs according to the resource scheduling by at least composing compute units comprising sets of computing components selected from among the pool of computing components to handle the execution jobs;
in accordance with the resource scheduling, deploy software components to the compute units for running the execution jobs once each of the compute units are formed; and
responsive to completions of the execution jobs, decompose the compute units by removing a corresponding logical isolation for the compute units such that computing components of the compute units are made available for composition into additional compute units.

### Claim 18 (depends on 17)

The computing system of claim 17, wherein the resource scheduling comprises one or more data structures relating identifiers for the execution jobs, indications of the sets of computing components needed to run each of the execution jobs, timeframes to initiate composition and decomposition of the compute units, and indications of software components to deploy to the compute units for the execution jobs.

### Claim 19 (depends on 17)

The computing system of claim 17, comprising:
the management processor configured to compose the compute units by at least forming logical isolations within the communication fabric communicatively coupling the sets of computing components, wherein the logical isolations each allow computing components within each of the sets of computing components to communicate over the communication fabric only within corresponding logical isolations.

### Claim 20 (depends on 17)

The computing system of claim 17, wherein the pool of computing components comprises central processing units (CPUs), co-processing units, graphics processing units (GPUs), tensor processing units (TPUs), field programmable gate arrays (FPGAs), application specific integrated circuits (ASICs), storage drives, and network interface controllers (NICs) coupled to at least the communication fabric.
