Seymour: A Portable Parallel Programming Language
Russ Miller
Quentin F. Stout
Dept of Comp Sci & Eng, State University of New York at Buffalo
EECS Department, University of Michigan
This paper introduces Seymour, a high-level data parallel programming language that can be used to design, express, and implement efficient portable parallel algorithms. The foundation of Seymour is based on the emerging approach of designing parallel algorithms based on standardized global operations such as prefix, broadcast, sort, compression, and associative read. Seymour also incorporates fundamental paradigms, such as divide-and-conquer, reduce-and-create-cross-product, and reduce-and-compress, which are derived from theoretical parallel algorithms. Seymour redirects the difficulties of portability and efficiency into similar difficulties for the global operations and paradigms. However, the cost of developing efficient implementations of standardized operations on the various target architectures can be amortized over numerous algorithms.
Keywords: parallel programming paradigms, global data movement operations, portable parallel programs, efficiency, parallel computing, computer science
Russ Miller (miller@cse.buffalo.edu)