A parallelizing compiler for distributed-memory parallel computers
Distributed memory parallel computers provide an attractive approach to high speed computing because their performance can be easily scaled up by increasing the number of processor-memory modules. To use these computers, we have to design parallel algorithms and produce parallel programs. In many cases, parallel algorithm design is a mapping of existing algorithms to parallel architectures. In this thesis, the author studies such a mapping process and presents a parallelizing compiler which can: (1) automate the program mapping, and (2) generate efficient parallel code. There are three key components in the program mapping: data decomposition, loop distribution and data relations. Data decomposition maps data structures to the distributed memory system; loop distribution maps the computation to processors; and data relations determine the interprocessor communication. The compiler applies data flow analysis and data dependence analysis to minimize interprocessor communication overhead and parallelize program execution. Based on these ideas, the author has implemented the AL parallelizing compiler for the Warp machine. AL is a generic programming languate for the prototype implementation. The target machine, Warp, is a programmable linear systolic array of 10 processors. AL has been successfully used to program many applications on Warp. This thesis makes contributions to the research area of parallelizing compilers by introducing a model for mapping programs to distributed memory parallel computers. This thesis also makes contributions to the research area of parallel programming by introducing an approach to programming distributed memory parallel computers.
- Research Organization:
- Carnegie-Mellon Univ., Pittsburgh, PA (USA)
- OSTI ID:
- 5827504
- Country of Publication:
- United States
- Language:
- English
Similar Records
Systolic-array optimizing compiler
Methodologies for validating parallel programs
Related Subjects
990200* -- Mathematics & Computers
ALGORITHMS
ARRAY PROCESSORS
COMMUNICATIONS
COMPUTER ARCHITECTURE
COMPUTER CODES
DATA PROCESSING
DESIGN
DISTRIBUTED DATA PROCESSING
MAPPING
MATHEMATICAL LOGIC
MEMORY MANAGEMENT
MODIFICATIONS
PARALLEL PROCESSING
PERFORMANCE
PROCESSING
PROGRAMMING
PROGRAMMING LANGUAGES
USES