Skip to main content
SHARE
Publication

Toward Abstracting the Communication Intent in Applications to Improve Portability and Productivity...

Publication Type
Conference Paper
Book Title
Proceedings of the International Parallel and Distributed Processing Symposium: IPDPS 2013 Workshops, 18th International Workshop on High-Level Parallel Programming Models and Supportive Environments (HIPS'13)
Publication Date
Conference Name
27th IEEE International Parallel and Distributed Processing Symposium
Conference Location
Boston, Massachusetts, United States of America
Conference Date
-

Programming with communication libraries such as the Message Passing Interface (MPI) obscures the high-level intent of the communication in an application and makes static communication analysis difficult to do. Compilers are unaware of communication libraries’ specifics, leading to the exclusion of communication patterns from any automated analysis and optimizations. To overcome this, communication patterns can be expressed at higher-levels of abstraction and incrementally added to existing MPI applications. In this paper, we propose the use of directives to clearly express the communication intent of an application in a way that is not specific to a given communication library. Our communication directives allow programmers to express communication among processes in a portable way, giving hints to the compiler on regions of computations that can be overlapped with communication and relaxing communication constraints on the ordering, completion and synchronization of the communication imposed by specific libraries such as MPI. The directives can then be translated by the compiler into message passing calls that efficiently implement the intended pattern and be targeted to multiple communication libraries. Thus far, we have used the directives to express point-to-point communication patterns in C, C++ and Fortran applications, and have translated them to MPI and SHMEM.