Enforcing Textual Alignment of Collectives Using Dynamic Checks

14 years 2 days ago
Enforcing Textual Alignment of Collectives Using Dynamic Checks
Abstract. Many parallel programs are written in a single-program, multipledata (SPMD) style, in which synchronization is provided using collective operations that all threads execute simultaneously. If these operations are not properly aligned on all threads, deadlock can occur, and many compiler analyses and optimizations that depend on proper alignment fail. In this paper, we discuss the flaws in the Titanium language’s type system for enforcing textual alignment of collectives. We then present a system that uses runtime checks to ensure alignment for two definitions of textual alignment. The system instruments the code to keep track of alignment in each thread and then checks that alignment matches prior to performing a collective operation. We have implemented the system in the Titanium compiler, verifying that it catches alignment errors. We tested its performance on multiple application programs, demonstrating that the checks have no appreciable impact on execution time.
Amir Kamil, Katherine A. Yelick
Added 26 Jul 2010
Updated 26 Jul 2010
Type Conference
Year 2009
Where LCPC
Authors Amir Kamil, Katherine A. Yelick
Comments (0)