We focus on two criticisms of bulk synchronous parallelism (BSP): that
delaying communication until specific points in a program causes poor
performance, and that frequent barrier synchronisations are too expen
sive for high-performance parallel computing. We show that these criti
cisms are misguided, not just about BSP but about parallel programming
in general, because they are based on misconceptions about the origin
s of poor performance. The main implication for parallel programming i
s that higher levels of abstraction do not only make software construc
tion easier - they also make high-performance implementation easier. C
opyright (C) 1998 Elsevier Science B.V.