Remote Direct Memory Access (RDMA) on Cray-Aries network allows performing atomic operations over the network with super low latency that is as fast as a PUT without any intervention from the CPU. Head and Tail are initially nil.
Enqueue
- Enqueue performs RDMA atomic exchange on Tail.
- Enqueue sets next field to old head, then sets atomic 'is_ready' flag.
- Performs an RDMA atomic store if the old Tail was nil.
Bulk Enqueue