Caching Network Fabric for High Performance Computing
AssigneeHewlett Packard Enterprise Development LP
InventorsMichael Woodacre, Randal S. Passint
Life of this patent
Estimating the term…
Abstract
An apparatus and method exchange data between two nodes of a high performance computing (HPC) system using a data communication link. The apparatus has one or more processing cores, RDMA engines, cache coherence engines, and multiplexers. The multiplexers may be programmed by a user application, for example through an API, to selectively couple either the RDMA engines, cache coherence engines, or a mix of these to the data communication link. Bulk data transfer to the nodes of the HPC system may be performed using paged RDMA during initialization. Then, during computation proper, random access to remote data may be performed using a coherence protocol (e.g. MESI) that operates on much smaller cache lines.
Claims15
Apparatus for exchanging data using a data communication link between a first computing node and a second computing node, the computing nodes cooperatively executing a user application using the exchanged data, the apparatus comprising:
- one or more processing cores;
- one or more remote direct memory access (RDMA) engines, each RDMA engine separately capable of providing access by the first computing node to pages of a memory of the second computing node;
- one or more cache coherence engines, each cache coherence engine separately capable of providing access by the first computing node to cache lines of the memory of the second computing node;
- and
- one or more multiplexers, to selectively couple, to the data communication link according to an instruction of the user application, at least one RDMA engine or at least one cache coherence engines.
A method of exchanging data using a data communication link between a first computing node and a second computing node, the computing nodes cooperatively executing a user application using the exchanged data, the method comprising:
- executing, in the first computing node, a first instruction of the user application to access pages of a memory of the second computing node;
- selectively coupling, by one or more multiplexers, one or more remote direct memory access (RDMA) engines to the data communication link;
- receiving the pages of memory, by the first computing node from the second computing node;
- executing, in the first computing node, a second instruction of the user application to access cache lines of the memory of the second computing node;
- selectively coupling, by the one or more multiplexers, one or more cache coherence engines to the data communication link;
- and
- receiving the cache lines of memory, by the first computing node from the second computing node.
A tangible computer-readable medium in which is non-transitorily fixed a series of computer instructions that, when executed by a first computing node, produce a method of exchanging data using a data communication link between the first computing node and a second computing node, the computing nodes cooperatively executing a user application using the exchanged data, the method comprising:
- executing, in the first computing node, a first instruction of the user application to access pages of a memory of the second computing node;
- selectively coupling, by one or more multiplexers, one or more remote direct memory access (RDMA) engines to the data communication link;
- receiving the pages of memory, by the first computing node from the second computing node;
- executing, in the first computing node, a second instruction of the user application to access cache lines of the memory of the second computing node;
- selectively coupling, by the one or more multiplexers, one or more cache coherence engines to the data communication link;
- and
- receiving the cache lines of memory, by the first computing node from the second computing node.
Dependencies are inferred from the claim text.