Leveraging C++ Meta-programming Capabilities to Simplify the Message Passing Programming Model
- Cite this paper as:
- Pellegrini S., Prodan R., Fahringer T. (2011) Leveraging C++ Meta-programming Capabilities to Simplify the Message Passing Programming Model. In: Cotronis Y., Danalis A., Nikolopoulos D.S., Dongarra J. (eds) Recent Advances in the Message Passing Interface. EuroMPI 2011. Lecture Notes in Computer Science, vol 6960. Springer, Berlin, Heidelberg
Message passing is the primary programming model utilized for distributed memory systems. Because it aims at performance, the level of abstraction is low, making distributed memory programming often difficult and error-prone. In this paper, we leverage the expressivity and meta-programming capabilities of the C++ language to raise the abstraction level and simplify message passing programming. We redefine the semantics of the assignment operator to work in a distributed memory fashion and leave to the compiler the burden of generating the required communication operations. By enforcing more severe checks at compile-time we are able to statically capture common programming errors without causing runtime overhead.
KeywordsMessage passing C++ Meta-programming PGAS
Unable to display preview. Download preview PDF.