MPIX_Queue

A new data object created to support GPU stream based MPI point-to-point
operations.

Description

MPIX_Queue is a new data object created to support GPU stream based MPI operations. The proposed GPU-NIC Async Stream Triggered APIs in HPE Cray MPI allows users to map the MPIX_Queue object to a particular user-defined GPU stream handle. The proposed stream based MPI communication operations are enqueued to a particular MPIX_Queue object and these operations are executed in FIFO order.

MPIX_Enqueue_send and MPIX_Enqueue_recv are examples of Stream Triggered MPI point-to-point communication operations. These APIs create internal communication descriptors that correspond to the MPI data movement operations and these descriptors are enqueued into the MPIX_Queue object. The MPIX_Enqueue_start function allows an application process to specify when the stream-based MPI communication operations must be executed by the GPU-NIC Async Communication Runtime Layer. Similarly, MPIX_Enqueue_wait allows an application process to define when the GPU-NIC Async Communication Runtime Layer must wait for the completion of stream-based communication operations.