# US 12,118,388 B2 · System, method and computer-accessible medium for a domain decomposition aware processor assignment in multicore processing system(s)

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

- Number: US 12,118,388 B2
- Document ID: US12118388B2
- Status: Granted
- Kind: B2
- Application number: 17/618,797
- Filed: 2020-06-05
- Published: 2022-08-11
- Granted: 2024-10-15
- Earliest claimed: 2019-06-12
- Assignees: New York University in Abu Dhabi Corporation
- Applicants: New York University In Abu Dhabi Corporation
- Inventors: Benoit Marchand
- Web page: https://patentgrep.com/patent/US12118388B2

## CPC

- G06F 9/50: Allocation of resources, e.g. of the central processing unit [CPU]
- G06F 9/5066: {Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs (mappping at compile time, see G06F8/451)}
- G06F 9/5033: {considering data affinity}
- H04L 67/1008: based on parameters of servers, e.g. available memory or workload (monitoring of computer activity G06F11/30)
- H04L 67/1012: based on compliance of requirements or conditions with available server resources
- H04L 67/1036: Load balancing of requests to servers for services different from user content provisioning, e.g. load balancing across domain name servers
- 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

An exemplary system, method and computer-accessible medium for assigning a plurality of tasks to a plurality of computing nodes can include, for example, receiving first information related to the computing nodes, where the first information can include a number of cores in each of the computing nodes, generating second information by separating the number of cores in each of the computing nodes, and assigning the tasks to the computing nodes based on the second information. The first information can further include (i) a distance of a network connection between each of the computer nodes, and (ii) a bandwidth of the network connection. The second information can be generated based on the tasks. The second information can be generated based on a number of dimensions of the tasks. The tasks can be assigned based on a minimization of a number of communications between the nodes.

## Claims

### Claim 1

A non-transitory computer-accessible medium having stored thereon computer-executable instructions for assigning a plurality of tasks to a plurality of computing nodes, wherein, when a computer arrangement executes the instructions, the computer arrangement is configured to perform procedures comprising:
(a) receiving first information related to the computing nodes, wherein the first information includes a number of cores in each of the computing nodes;
(b) generating second information by separating the number of cores in each of the computing nodes;
(c) assigning the tasks to the computing nodes based on the second information and at least one problem characteristic, wherein one or more of the computing notes are executing one or more applications during a performance of procedures (a)-(c), and wherein the at least one problem characteristic includes at least one of (i) a first number of dimensions in a grid, (ii) a second number of dimensions in at least one axis of the grid, or (iii) a third number of points of the grid in a Message Passing Interface process; and
(d) substituting one or more identifications of one or more of the tasks during the performance of the procedures (a)-(c) and the execution of the one or more applications while the one or more applications are unaware of the substitution.

### Claim 2 (depends on 1)

The computer-accessible medium of claim 1, wherein the first information further includes at least one of:
(A) (i) a distance of a network connection between each of the computer nodes, and (ii) a bandwidth of the network connection, or
(B) includes a distance to at least one nearest neighbor node.

### Claim 3 (depends on 1)

The computer-accessible medium of claim 1, wherein the computer arrangement is configured to generate the second information based on the tasks.

### Claim 4 (depends on 3)

The computer-accessible medium of claim 3, wherein the computer arrangement is configured to generate the second information based on a number of dimensions of the tasks.

### Claim 5 (depends on 3)

The computer-accessible medium of claim 3, wherein the computer arrangement is further configured to:
obtain information related to at least one problem characteristic associated with at least one of the tasks; and
assign the tasks to the computing nodes based on the at least one problem characteristic.

### Claim 6 (depends on 5)

The computer-accessible medium of claim 5, wherein the computer arrangement is configured to:
determine an optimal sub-grid layout based on the at least one problem characteristic; and
assign the tasks based on the optimal sub-grid layout.

### Claim 7 (depends on 1)

The computer-accessible medium of claim 1, wherein the computer arrangement is further configured to:
perform at least one simulation that includes simulating an assignment of the tasks to the computing nodes; and
assign the tasks based on the at least one simulation.

### Claim 8 (depends on 1)

The computer-accessible medium of claim 1, wherein the computer arrangement is configured to perform the at least one simulation based on at least one application statistic.

### Claim 9 (depends on 8)

The computer-accessible medium of claim 8, wherein the at least one application statistic includes statistics from at least one previous simulation.

### Claim 10 (depends on 1)

The computer-accessible medium of claim 1, wherein procedure (d) is performed using a sub-grid which includes one or more actual identifications for the one or more of the tasks and one or more associated substitute identifications for the one or more of the tasks.

### Claim 11 (depends on 10)

The computer-accessible medium of claim 10, wherein procedure (d) substitutes the one or more actual identification with the associated one or more substitute identifications during the execution of the one or more applications without any awareness of the substitution.

### Claim 12 (depends on 1)

The computer-accessible medium of claim 1, wherein procedure (d) is performed using multiple sub-grids, each of which includes one or more actual identifications for the one or more of the tasks and one or more associated substitute identifications for the one or more of the tasks.

### Claim 13 (depends on 1)

The computer-accessible medium of claim 1, wherein procedures (a)-(d) are performed recursively for communications between the computing nodes and within one or more of the computing nodes.

### Claim 14 (depends on 1)

The computer-accessible medium of claim 1, wherein the tasks operate on a shared memory or utilize the shared memory to communicate with one another.

### Claim 15 (depends on 1)

The computer-accessible medium of claim 1, wherein the computer arrangement is further configured simulate or mimic at least one different ratio of a count of cores of processors to a bandwidth of one or more communication networks by reducing or throttling of the bandwidth.

### Claim 16 (depends on 1)

The computer-accessible medium of claim 1, wherein the one or more tasks provide messages between one another, and wherein the messages are aggregated.

### Claim 17

A system for assigning a plurality of tasks to a plurality of computing nodes, comprising:
a computer hardware arrangement configured to:
(a) receive first information related to the computing nodes, wherein the first information includes a number of cores in each of the computing nodes;
(b) generate second information by separating the number of cores in each of the computing nodes;
(c) assign the tasks to the computing nodes based on the second information and at least one problem characteristic, wherein one or more of the computing notes are executing one or more applications during a performance of procedures (a)-(c), and wherein the at least one problem characteristic includes at least one of (i) a first number of dimensions in a grid, (ii) a second number of dimensions in at least one axis of the grid, or (iii) a third number of points of the grid in a Message Passing Interface process; and
(d) substitute one or more identifications of one or more of the tasks during the performance of the procedures (a)-(c) and the execution of the one or more applications while the one or more applications are unaware of the substitution.

### Claim 18

A method for assigning a plurality of tasks to a plurality of computing nodes, comprising:
(a) receiving first information related to the computing nodes, wherein the first information includes a number of cores in each of the computing nodes;
(b) generating second information by separating the number of cores in each of the computing nodes; and
(c) using a computer hardware arrangement, assigning the tasks to the computing nodes based on the second information and at least one problem characteristic, wherein one or more of the computing notes are executing one or more applications during a performance of procedures (a)-(c), and wherein the at least one problem characteristic includes at least one of (i) a first number of dimensions in a grid, (ii) a second number of dimensions in at least one axis of the grid, or (iii) a third number of points of the grid in a Message Passing Interface process; and
(d) substituting one or more identifications of one or more of the tasks during the performance of the procedures (a)-(c) and the execution of the one or more applications while the one or more applications are unaware of the substitution using a computer hardware arrangement, assigning the tasks to the computing nodes based on the second information.

### Claim 19

A non-transitory computer-accessible medium having stored thereon computer-executable instructions for assigning a plurality of tasks to a plurality of computing nodes, wherein, when a computer arrangement executes the instructions, the computer arrangement is configured to perform procedures comprising:
(a) receiving first information related to the computing nodes, wherein the first information includes a number of cores in each of the computing nodes;
(b) generating second information by separating the number of cores in each of the computing nodes; and
(c) assigning the tasks to the computing nodes based on the second information, wherein one or more of the computing notes are executing one or more applications during a performance of procedures (a)-(c); and
(d) substituting one or more identifications of one or more of the tasks during the execution of the one or more applications (i) while the one or more applications are unaware of the substitution, and (ii) without a Message Passing Interface (MPI) library, an operating system, or a workload manager being aware of the substitution.

### Claim 20

A system for assigning a plurality of tasks to a plurality of computing nodes, comprising:
a computer hardware arrangement configured to:
(a) receive first information related to the computing nodes, wherein the first information includes a number of cores in each of the computing nodes;
(b) generate second information by separating the number of cores in each of the computing nodes; and
(c) assign the tasks to the computing nodes based on the second information, wherein one or more of the computing notes are executing one or more applications during a performance of procedures (a)-(c); and
(d) substitute one or more identifications of one or more of the tasks during the execution of the one or more applications (i) while the one or more applications are unaware of the substitution, and (ii) without a Message Passing Interface (MPI) library, an operating system, or a workload manager being aware of the substitution.

### Claim 21

A method for assigning a plurality of tasks to a plurality of computing nodes, comprising:
(a) receiving first information related to the computing nodes, wherein the first information includes a number of cores in each of the computing nodes;
(b) generating second information by separating the number of cores in each of the computing nodes; and
(c) using a computer hardware arrangement, assigning the tasks to the computing nodes based on the second information, wherein one or more of the computing notes are executing one or more applications during a performance of procedures (a)-(c); and
(d) substituting one or more identifications of one or more of the tasks during the execution of the one or more applications (i) while the one or more applications are unaware of the substitution, and (ii) without a Message Passing Interface (MPI) library, an operating system, or a workload manager being aware of the substitution.
