A report on the Sisal language project
Journal of Parallel and Distributed Computing - Special issue: data-flow processing
Data-parallel programming on MIMD computers
Data-parallel programming on MIMD computers
Compiling Fortran D for MIMD distributed-memory machines
Communications of the ACM
Automatic partitioning of a program dependence graph into parallel tasks
IBM Journal of Research and Development
A threshold scheduling strategy for Sisal on distributed memory machines
Journal of Parallel and Distributed Computing
Automatic Extraction of Functional Parallelism from Ordinary Programs
IEEE Transactions on Parallel and Distributed Systems
Access Normalization: Loop Restructuring for NUMA Compilers
Access Normalization: Loop Restructuring for NUMA Compilers
A compilation method for communication—efficient partitioning of DOALL loops
Compiler optimizations for scalable parallel systems
An Adaptive Approach to Data Placement
IPPS '96 Proceedings of the 10th International Parallel Processing Symposium
Hi-index | 0.01 |
We have developed an automatic compilation method that combines data- and code-based approaches to schedule a program's functional parallelism onto distributed memory systems. Our method works with Sisal, a parallel functional language, and replaces the back end of the Optimizing Sisal Compiler so that it produces code for distributed memory systems. Our extensions allow the compiler to generate code for Intel's distributed-memory Touchstone iPSC/860 machines (Gamma, Delta, and Paragon). The modified compiler can generate a partition that minimizes program completion time (for systems with many processors) or the required number of processors (for systems with few processors). To accomplish this, we have developed a heuristic algorithm that uses the new concept of threshold to treat the problem of scheduling as a trade-off between schedule length and the number of required processors. Most compilers for distributed memory systems force the programmer to partition the data or the program code. This modified version of a Sisal compiler handles both tasks automatically in a unified framework, and lets the programmer compile for a chosen number of processors.