# US 10,484,236 B2 · Performance of multi-processor computer systems

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

- Number: US 10,484,236 B2
- Document ID: US10484236B2
- Status: Granted
- Kind: B2
- Application number: 15/434,097
- Filed: 2017-02-16
- Published: 2017-07-20
- Granted: 2019-11-19
- Earliest claimed: 2011-08-26
- Assignees: Microsoft Technology Licensing, LLC
- Applicants: Microsoft Technology Licensing LLC
- Inventors: Alireza Dabagh; Murari Sridharan; Joseph Nievelt; Ganesh Srinivasan; Muhammad Junaid Shahid
- Web page: https://patentgrep.com/patent/US10484236B2

## CPC

- H04L 41/0803: Configuration setting
- G06F 9/5088: {involving task migration}
- G06F 15/1735: {Network adapters, e.g. SCI, Myrinet (protocol engines H04L69/12)}
- H04L 49/9068: {in the network interface card}
- H04L 49/9078: {using an external memory or storage device}
- G06F 9/4843: {by program, e.g. task dispatcher, supervisor, operating system}
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Embodiments of the invention may improve the performance of multi-processor systems in processing information received via a network. For example, some embodiments may enable configuration of a system such that information received can be distributed among multiple processors for efficient processing. A user may select from among multiple configuration options, each configuration option being associated with a particular mode of processing information received. By selecting a configuration option, the user may specify how received information is processed to capitalize on the system's characteristics, such as by aligning processors on the system with certain NICs. As such, the processor(s) aligned with a NIC may perform networking-related tasks associated with information received by that NIC. If initial alignment causes one or more processors to become over-burdened, processing tasks may be dynamically re-distributed to other processors.

## Claims

### Claim 1

A computer, coupled to at least one computer network, comprising:
a plurality of processors, comprising a plurality of non-uniform memory access nodes;
at least one network interface controller operable to receive packets of information transmitted via the at least one computer network over at least one network connection, each packet being associated with a particular network connection, and to provide packets associated with each network connection to a particular one of the plurality of non-uniform memory access nodes; and
at least one storage facility storing first programmed instructions defining a query facility usable to identify a non-uniform memory access node to which packets associated with a particular network connection are provided by the at least one network interface controller;
wherein an application accesses the query facility to determine the non-uniform memory access node on which networking-related processing for the application is performed, and wherein the application executes on the determined non-uniform memory access node.

### Claim 2 (depends on 1)

The computer of claim 1, wherein the at least one storage facility further stores second programmed instructions defining at least one application for execution on one or more of the plurality of processors, and wherein the first programmed instructions define an application programming interface enabling the at least one application to identify a non-uniform memory access node to which packets associated with a particular network connection are provided.

### Claim 3 (depends on 2)

The computer of claim 2, wherein the second programmed instructions enable the application to wake up in the identified non-uniform memory access node.

### Claim 4 (depends on 3)

The computer of claim 3, wherein each at least one network connection is associated with a partition, and wherein the first programmed instructions define a facility for identifying a non-uniform memory access node to which packets associated with a particular partition are provided.

### Claim 5 (depends on 2)

The computer of claim 2, wherein each at least one network connection is associated with a partition, and wherein the first programmed instructions define a facility for identifying a non-uniform memory access node to which packets associated with a particular partition are provided.

### Claim 6 (depends on 1)

The computer of claim 1, wherein each at least one network connection is associated with a partition, and wherein the first programmed instructions define a facility for identifying a non-uniform memory access node to which packets associated with a particular partition are provided.

### Claim 7 (depends on 1)

The computer of claim 1, wherein the at least one storage facility further stores second programmed instructions defining at least one application for execution on one or more of the plurality of processors, wherein the second programmed instructions enable the application to wake up in a non-uniform memory access node assigned to process packets associated with a network connection.

### Claim 8

A computer implemented process, performed by a computer, coupled to at least one computer network, the computer including a plurality of processors including a plurality of non-uniform memory access nodes, and at least one network interface controller, and at least one storage facility storing first programmed instructions defining a query facility, and an application executing on the computer, the computer-implemented process comprising:
the at least one network interface controller receiving packets of information transmitted via the at least one computer network over at least one network connection, each packet being associated with a particular network connection;
the at least one network controller providing packets associated with each network connection to a particular one of the plurality of non-uniform memory access nodes; and
the application accessing the query facility to determine a non-uniform memory access node on which networking-related processing for the application is performed;
the query facility identifying to the application a non-uniform memory access node to which packets associated with a particular network connection for the application are provided by the at least one network interface controller; and
the application executing on the determined non-uniform memory access node to process packets received over the network connection for the application.

### Claim 9 (depends on 8)

The computer-implemented process of claim 8, wherein the at least one storage facility further stores second programmed instructions defining at least one application for execution on one or more of the plurality of processors, and wherein the first programmed instructions define an application programming interface enabling the at least one application to identify a non-uniform memory access node to which packets associated with a particular network connection are provided.

### Claim 10 (depends on 9)

The computer-implemented process of claim 9, wherein each at least one network connection is associated with a partition, and wherein the first programmed instructions define a facility for identifying a non-uniform memory access node to which packets associated with a particular partition are provided.

### Claim 11 (depends on 9)

The computer-implemented process of claim 9, wherein the second programmed instructions enable the application to wake up in the identified non-uniform memory access node.

### Claim 12 (depends on 11)

The computer-implemented process of claim 11, wherein each at least one network connection is associated with a partition, and wherein the first programmed instructions define a facility for identifying a non-uniform memory access node to which packets associated with a particular partition are provided.

### Claim 13 (depends on 8)

The computer-implemented process of claim 8, wherein each at least one network connection is associated with a partition, and wherein the first programmed instructions define a facility for identifying a non-uniform memory access node to which packets associated with a particular partition are provided.

### Claim 14 (depends on 8)

The computer-implemented process of claim 8, wherein the at least one storage facility further stores second programmed instructions defining at least one application for execution on one or more of the plurality of processors, wherein the second programmed instructions enable the application to wake up in a non-uniform memory access node assigned to process packets associated with a network connection.

### Claim 15

An article of manufacture, comprising:
a computer storage device or a computer memory device;
computer program instructions stored on the computer storage device or computer memory device that, when executed by a computer, coupled to at least one computer network, the computer including a plurality of processors including a plurality of non-uniform memory access nodes, and at least one network interface controller, and at least one storage facility storing first programmed instructions defining a query facility, and an application executing on the computer, the computer performs a process comprising:
the at least one network interface controller receiving packets of information transmitted via the at least one computer network over at least one network connection, each packet being associated with a particular network connection;
the at least one network controller providing packets associated with each network connection to a particular one of the plurality of non-uniform memory access nodes; and
the application accessing the query facility to determine a non-uniform memory access node on which networking-related processing for the application is performed;
the query facility identifying to the application a non-uniform memory access node to which packets associated with a particular network connection for the application are provided by the at least one network interface controller; and
the application executing on the determined non-uniform memory access node to process packets received over the network connection for the application.

### Claim 16 (depends on 15)

The article of manufacture of claim 15, wherein the at least one storage facility further stores second programmed instructions defining at least one application for execution on one or more of the plurality of processors, and wherein the first programmed instructions define an application programming interface enabling the at least one application to identify a non-uniform memory access node to which packets associated with a particular network connection are provided.

### Claim 17 (depends on 16)

The article of manufacture of claim 16, wherein the second programmed instructions enable the application to wake up in the identified non-uniform memory access node.

### Claim 18 (depends on 17)

The article of manufacture of claim 17, wherein each at least one network connection is associated with a partition, and wherein the first programmed instructions define a facility for identifying a non-uniform memory access node to which packets associated with a particular partition are provided.

### Claim 19 (depends on 15)

The article of manufacture of claim 15, wherein each at least one network connection is associated with a partition, and wherein the first programmed instructions define a facility for identifying a non-uniform memory access node to which packets associated with a particular partition are provided.

### Claim 20 (depends on 16)

The article of manufacture of claim 16, wherein each at least one network connection is associated with a partition, and wherein the first programmed instructions define a facility for identifying a non-uniform memory access node to which packets associated with a particular partition are provided.
