CSR: Small: Fluid Communication for Parallel Programs
Columbia University, New York NY
Investigators
Abstract
Every aspect of parallel software development is more complicated than for serial programs. This research focuses on one of the primary sources of complexity: intra-application communication. Currently it is a programmer's responsibility to find an efficient mapping of their application's communication patterns onto the communication infrastructure of the target system. This research flips that responsibility by developing a flexible communication architecture and associated tools and algorithms that allow the target platform to be specialized for a particular application, rather than vice versa. In addition to reducing the programmer's burden, specialization has the potential to improve communication efficiency while the automated techniques can increase portability. This research poses questions whose answers have consequences at several levels of the traditional system stack: Can programmers be freed from hardware-specific optimization of communication without degrading performance? What abstractions are needed to allow hardware to adapt to the programmer, rather than the other way around? Can communication efficiency be improved when running on an application-specific communication platform? The project answers these questions by exploring abstractions and algorithms to profile a parallel program's communication, synthesize a custom network design, and implement it in a configurable network architecture substrate. The research methods center around the X10 language, and include compiler instrumentation passes, offline communication profile analyses, development of a portable network intermediate representation, and network place and route software algorithms.
View original record on NSF Award Search →