# US 2017/0255501 A1 · In-node Aggregation and Disaggregation of MPI Alltoall and Alltoallv Collectives

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

- Number: US 2017/0255501 A1
- Document ID: US20170255501A1
- Status: Published application
- Kind: A1
- Application number: 15/446,004
- Filed: 2017-03-01
- Published: 2017-09-07
- Earliest claimed: 2016-03-07
- Assignees: Mellanox Technologies, Ltd.
- Applicants: Mellanox Technologies, Ltd.
- Inventors: Shahaf Shuler; Noam Bloch; Gil Bloch
- Web page: https://patentgrep.com/patent/US20170255501A1

## CPC

- G06F 9/546: {Message passing systems or structures, e.g. queues}
- G06F 9/542: {Event management; Broadcasting; Multicasting; Notifications}
- G06F 2209/547: Messaging middleware
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

An MPI collective operation carried out in a fabric of network elements by transmitting MPI messages from all the initiator processes in an initiator node to designated ones of the responder processes in respective responder nodes. Respective payloads of the MPI messages are combined in a network interface device of the initiator node to form an aggregated MPI message. The aggregated MPI message is transmitted through the fabric to network interface devices of responder nodes, disaggregating the aggregated MPI message into individual messages, and distributing the individual messages to the designated responder node processes.

## Claims

### Claim 1

A method of communication, comprising the steps of:
in a fabric of network elements including an initiator node having initiator processes and responder nodes having respective responder processes, initiating in the initiator node, an MPI (message passing interface) collective operation comprising transmitting MPI messages from all the initiator processes to designated ones of the responder processes;
combining respective payloads of the MPI messages in a network interface device of the initiator node to form an aggregated MPI message;
transmitting the aggregated MPI message through the fabric to the responder nodes;
in respective network interface devices of the responder nodes disaggregating the aggregated MPI message into individual messages; and
distributing the individual messages to the designated ones of the responder processes.

### Claim 2 (depends on 1)

The method according to claim 1, wherein the aggregated MPI message has exactly one transport header that comprises a destination address of the aggregated MPI message.

### Claim 3 (depends on 1)

The method according to claim 1, wherein the MPI messages comprise respective MPI headers containing the designated ones of the responder processes, wherein the designated ones of the responder processes are referenced in an MPI communicator object.

### Claim 4 (depends on 3)

The method according to claim 3, wherein initiating an MPI collective operation comprises forwarding by a communication library the MPI communicator object and the payloads to the network interface device of the initiator node.

### Claim 5 (depends on 1)

The method according to claim 1, further comprising:
maintaining a communicator context in the network interface device of the initiator node, wherein transmitting the aggregated MPI message comprises directing the aggregated MPI message to local identifiers (LIDs) in the responder nodes according to the communicator context.

### Claim 6 (depends on 1)

The method according to claim 1, comprising forming the aggregated MPI message by assembling pointers to message data, and including respective local identifier addresses for the message data in the aggregated MPI message.

### Claim 7

An apparatus of communication, comprising:
a fabric of network elements including an initiator node executing initiator processes and responder nodes executing respective responder processes, wherein the initiator node is configured for initiating an MPI collective operation comprising transmitting MPI messages through the fabric from all the initiator processes to designated ones of the responder processes;
a first network interface device in the initiator node having first communicator controller circuitry configured for combining respective payloads of the MPI messages to form an aggregated MPI message; and
respective second network interface devices in the responder nodes having second communicator controller circuitry configured for disaggregating the aggregated MPI message into individual messages, wherein the responder nodes are operative for distributing the individual messages to the designated ones of the responder processes.

### Claim 8 (depends on 7)

The apparatus according to claim 7, wherein the aggregated MPI message has exactly one transport header that comprises a destination address of the aggregated MPI message.

### Claim 9 (depends on 7)

The apparatus according to claim 7, wherein the MPI messages comprise respective MPI headers containing the designated ones of the responder processes, wherein the designated ones of the responder processes are referenced in an MPI communicator object.

### Claim 10 (depends on 9)

The apparatus according to claim 9, wherein initiating an MPI collective operation comprises forwarding by a communication library the MPI communicator object and the payloads to the first network interface device.

### Claim 11 (depends on 7)

The apparatus according to claim 7, wherein the first communicator controller circuitry is operative for forming the aggregated MPI message by assembling pointers to message data, and including respective local identifier addresses for the message data in the aggregated MPI message.

### Claim 12 (depends on 7)

The apparatus according to claim 7, wherein the first network interface device is operative for maintaining a communicator context and transmitting the aggregated MPI message by directing the aggregated MPI message to local identifiers (LIDs) in the responder nodes according to the communicator context.
