Automatic Buffering of Rendezvous Models
Ravindra Babu, Ganapathi Nalini, Vasudevan Stephen, Abigail Edwards · 2009
Many concurrent programming models use rendezvous communication: the sender and the receiver both waiting for each other for the communication to succeed. There are two problems with this model. Firstly, the sender cannot go ahead to do some other computation. Therefore, there is a performance bottleneck. Secondly, a program with these blocking constructs may be susceptible to deadlocks. A remedy to these problems is to use bounded buffers instead of rendezvous communication. In this paper, we implement the rendezvous communication of SHIM, a concurrent programming language with bounded buffers and discuss methods to automate it. SHIM is a deterministic language: its input-output behavior is not affected by the scheduling choices taken by the operating system. By increasing the number of places in the buffer, we still maintain the determinism and the characteristics of the original program, except that we resolve deadlocks in certain cases. 1.