Recent shared-memory systems, however, have started to expose a variety of mechanisms to address this problem. Systems like these open up exciting possibilities for compiling parallel programming languages. I have exploited some of these possibilities in a compiler for HPF targeting the Blizzard system. The talk will describe compiler analysis and a contract between the compiler and the coherence layer that minimizes the coherence overhead perceived by the application program, while still maintaining the flexibility of a global shared address space. I will also briefly describe my work on Teapot, a novel language for writing coherence protocols in software.
Teapot provides language features that reduce the complexity of writing protocols.
In addition, it supports automatic verification of coherence protocols.