Multiprocessors and Runtime Compilation
Abstract
Runtime time preprocessing plays a major role in many efficient algorithms in computer science, as well as playing an important role in exploiting multiprocessor architectures. We give examples that elucidate the importance of run time preprocessing and show how these optimizations can be integrated into compilers. To support our arguments, we describe transformations implemented in prototype multiprocessor compilers and present benchmarks from the iPSC2/860, the CM-2, and the Encore Multimax/320. To effectively exploit many multiprocessor architectures, we may also have to carry out run time preprocessing. This preprocessing will be referred to as runtime compilation. The purpose of runtime compilation is not to determine which computations are to be performed but instead to determine how a multiprocessor machine will schedule the algorithm's work, how to map the data structures and how data movement within the multiprocessor is to be scheduled. In this paper, we specifically address problems for which computational patterns can be predicted when values assigned to key data structures are known. These problems include computations on non-uniform meshes, sparse direct factorization which does not involve pivoting and sparse iterative linear solvers.
Document Details
- Document Type
- Technical Report
- Publication Date
- Sep 01, 1990
- Accession Number
- ADA227740
Entities
People
- Harry Berryman
- Janet Wu
- Joel Saltz