Comparative efficiency of different implementations of the Ada rendezvous

Reasonably efficient implementations of Ada task synchronization, in particular the rendezvous, will be crucial to the successful application of Ada. There are a variety of different implementations of rendezvous semantics, each with a different cost. In addition, some implementations can only be used under constrained circumstances. In the exercise reported here we have chosen a particular application of the rendezvous that we expect to occur frequently and we have programmed several alternative implementations for this use of the rendezvous. We have measured the performance of these implementations on the multiprocessor Cm* to ascertain actual costs of the various implementations on an existing multiple processor engine. Our measurements are reported here.