# US 8,789,067 B2 · Data communications in a parallel active messaging interface of a parallel computer

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

- Number: US 8,789,067 B2
- Document ID: US8789067B2
- Status: Granted
- Kind: B2
- Application number: 13/659,370
- Filed: 2012-10-24
- Published: 2013-03-07
- Granted: 2014-07-22
- Earliest claimed: 2010-12-03
- Assignees: International Business Machines Corporation
- Applicants: International Business Machines Corporations
- Inventors: Kristan D. Davis; Daniel A. Faraj
- Web page: https://patentgrep.com/patent/US8789067B2

## CPC

- G06F 15/17318: {Parallel communications techniques, e.g. gather, scatter, reduce, roadcast, multicast, all to all}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Algorithm selection for data communications in a parallel active messaging interface (‘PAMI’) of a parallel computer, the PAMI composed of data communications endpoints, each endpoint including specifications of a client, a context, and a task, endpoints coupled for data communications through the PAMI, including associating in the PAMI data communications algorithms and ranges of message sizes so that each algorithm is associated with a separate range of message sizes; receiving in an origin endpoint of the PAMI a data communications instruction, the instruction specifying transmission of a data communications message from the origin endpoint to a target endpoint, the data communications message characterized by a message size; selecting, from among the associated algorithms and ranges, a data communications algorithm in dependence upon the message size; and transmitting, according to the selected data communications algorithm from the origin endpoint to the target endpoint, the data communications message.

## Claims

### Claim 1

A method of algorithm selection for data communications in a parallel active messaging interface (‘PAMI’) of a parallel computer, the parallel computer comprising a plurality of compute nodes that execute a parallel application, the PAMI comprising data communications endpoints, each endpoint comprising a specification of data communications parameters for a thread of execution on a compute node, including specifications of a client, a context, and a task, the compute nodes and the endpoints coupled for data communications through the PAMI and through data communications resources, the method comprising:
associating in the PAMI data communications algorithms and ranges of message sizes so that each algorithm is associated with a separate range of message sizes;
receiving in an origin endpoint of the PAMI a data communications instruction, the instruction specifying transmission of a data communications message from the origin endpoint to a target endpoint, the data communications message characterized by a message size;
selecting, from among the associated algorithms and ranges, a data communications algorithm in dependence upon the message size, a number of ranges, an upper boundary value and an index identifying a range containing the message size;
transmitting, according to the selected data communications algorithm from the origin endpoint to the target endpoint, the data communications message.

### Claim 2 (depends on 1)

The method of claim 1 wherein the ranges vary in magnitude.

### Claim 3 (depends on 1)

The method of claim 1 wherein each range is characterized by an upper boundary value, and selecting a data communications algorithm further comprises selecting a data communications algorithm according to:
r
=
∑
i
=
0
n
-
1
⁢
⁢
a
b
i
+
1
-
a
-
b
i
+
1
b
i
+
1
,
where n is the number of ranges, a is the message size, bi is the upper boundary value of the ith range of message sizes, and r is an index identifying the range containing the message size.

### Claim 4 (depends on 1)

The method of claim 1 wherein:
each client comprises a collection of data communications resources dedicated to the exclusive use of an application-level data processing entity;
each context comprises a subset of the collection of data processing resources of a client, context functions, and a work queue of data transfer instructions to be performed by use of the subset through the context functions operated by an assigned thread of execution; and
each task represents a process of execution of the parallel application.

### Claim 5 (depends on 1)

The method of claim 1 wherein each context carries out, through post and advance functions, data communications for the parallel application on data communications resources in exclusive possession of that context.

### Claim 6 (depends on 1)

The method of claim 1 wherein each context carries out data communications operations independently and in parallel with other contexts.
