Patent ID: 8495654
Filing Date: 2013-07-23
Classification: G06F

Abstract:
1. An apparatus for intranode data communications in a parallel computer, the parallel computer comprising a plurality of compute nodes, each compute node of the plurality of compute nodes configured to execute a plurality of processes, the apparatus comprising a computer processor, a computer memory operatively coupled to the computer processor, the computer memory having disposed within it computer program instructions that, when executed, cause the apparatus to carry out the steps of: upon initialization of a first process of one of the plurality of compute nodes, allocating, by the first process, a region of shared memory; establishing, by the first process within the allocated region of shared memory, a predefined number of message buffers, each message buffer associated with one of the plurality of processes to be initialized on the one of the plurality of compute nodes; sending, by the first process to a second process of the one of the plurality of compute nodes, a data communications message without determining whether the second process has been initialized, including storing the data communications message in the message buffer of the second process; upon initialization of the second process: retrieving, by the second process, a pointer to the second process's message buffer; and retrieving, by the second process from the second process's message buffer in dependence upon the pointer, the data communications message sent by the first process, wherein: the parallel computer comprises a parallel active messaging interface (‘PAMI’) and the plurality of compute nodes execute a parallel application, the PAMI comprises data communications endpoints, each data communications endpoint comprising a specification of data communications parameters for a thread of execution on a compute node of the plurality of compute nodes, including specifications of a client, a context, and a task, the endpoints coupled for data communications through the PAMI; each process of the plurality of processes comprises an endpoint: each client comprises a collection of data communications resources dedicated to 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.