LACS: a language for affine communication structures
Abstract
We propose a language which provides a unified notation for specifying parallel assignment, communication and reduction operations in massively parallel programs. It is designed around a Parallel Assignment Statement (PAS) and Atomic Communication Events (ACE's) and can be used to describe most common communication libraries like 1-to-1 transfer, broadcast, personalized communication, reduce, scans, etc.. as APL-style one-liners. Lacs uses convex polyhedra and affine transformations and hence, tools from linear algebra can be used for compile time analysis. We can automatically detect when a PAS in LACS is well formed, has write conflicts, etc. We can also detect the presence of communication activities like scatters, reduces, scans and their generalizations.