What could MPI’s evolution say about when to use CSP-style channels?

By: Jeremy W. Sherman. Published: . Categories: reading-highlights. Tags: go-lang csp mpi mechanical-sympathy.

The reasons MPI is moving from two-sided to one-sided communication may be interesting in light of programs that may use CSP-style channels for communication rather than synchronization/signaling:

The main communication paradigm for MPI point-to-point communication has been two-sided communication, where a send call at the source is matched by a receive call at the destination. This paradigm has weaknesses: The complex matching rules of sends to receives result in significant software overheads, especially for receive operations; overlap of communication and computation requires the presence of an asynchronous communication agent that can poll queues concurrently with ongoing computation; and send-receive communication either requires an extra copying of messages (eager protocol) or extra handshakes between sender and receiver (rendezvous protocol).

(Marc Snir in “Technical Perspective: The Future of MPI”, CACM Oct 2018)