ABSTRACT

Message-passing and distributed shared memory have their respective advantages and disadvantages in distributed par- allel programming. We approach the problem of inte- grating both mechanisms into a single system by propos- ing a new message-driven coherency mechanism. Mes- sages carrying explicit causality annotations are exchanged to trigger memory coherency actions. By adding annota- tions to standard message-based protocols, it is easy to con- struct efficient implementations of common synchroniza- tion and communication mechanisms. Because these are user-level messages, the set of available primitives is ex- tended easily with language- or application-specific mech- anisms. CarlOS, an experimental prototype for evaluating this approach, is derived from the lazy release consistent memory of TreadMarks. We describe the message-driven coherency memory model used in CarlOS, and we examine the performance of several applications.