Our sockets API is implemented as a user-level library using the VMMC the Unix stream sockets facility. We introduce a new address family, AF_VMMC, to support the new type of stream socket. The sockets implementation works for both Shrimp and Myrinet interconnects.
We achieve high performance by taking advantage of the features of the underlying VMMC communication layer. VMMC provides low-latency protected user-level communication, without imposing any buffer management semantics, and without requiring an interrupt for each message. These properties allow packages like our sockets library to customize their buffer management and control transfer strategies to optimize performance.
Our sockets implementation exploits all of these features to provide high performance. The sockets performance for both platforms is summarized in the following table: