Comparing barrier algorithms

Abstract A barrier is a method for synchronizing a large number of concurrent computer processes. After consideration of some basic synchronization mechanisms, a collection of barrier algorithms with either linear or logarithmic depth will be presented. A graphical model is described that profiles the execution of the barriers and other parallel programming constructs. This model shows that in order to achieve the best performance, different situations call for different barrier implementations. Timing experiments supporting these conclusions are detailed.