Why We Can't Program Multiprocessors the Way We're Trying to Do It Now.
Abstract
Parallel computation is an area in which software technology lags considerably behind hardware technology. The need for parallel computing in a number of applications (e.g., scientific computing, machine vision, artificial intelligence) is unquestioned, and computers with hundreds of processors are now readily available (for instance, the Butterfly or the many derivatives of the Cosmic Cube). However, these machines are programmed in essentially the same way as existing sequential machines. The best available parallel programming languages are variants of standard sequential languages, with extensions to let the programmer explicitly divide a program into tasks and pass information between those tasks. Although designers of these languages claim that they are no harder to use than conventional sequential ones, programmers still face the problem of figuring out how to partition their application into tasks in addition to the usual problem of translating it into a program. An appealing alternative is to leave partitioning of programs to compilers. By hiding partitioning problems from programmers, this approach should make multi-processor computers easier to program than they are now. Unfortunately efforts to develop parallelizing compilers have so far been rather unsuccessful.
Document Details
- Document Type
- Technical Report
- Publication Date
- Aug 01, 1987
- Accession Number
- ADA189569
Entities
People
- Doug Baldwin
Organizations
- University of Rochester