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.

Open PDF

Document Details

Document Type
Technical Report
Publication Date
Aug 01, 1987
Accession Number
ADA189569

Entities

People

  • Doug Baldwin

Organizations

  • University of Rochester

Tags

DTIC Thesaurus Topics

  • Algorithms
  • Artificial Intelligence
  • Compilers
  • Computations
  • Computer Programming
  • Computer Programs
  • Computer Science
  • Computers
  • Engineering
  • Language
  • Lisp Programming Language
  • Object Oriented Programming
  • Parallel Computing
  • Programming Languages
  • Side Effects
  • Software Development
  • Symbolic Programming

Fields of Study

  • Computer science
  • Engineering

Readers

  • Educational Psychology
  • Parallel and Distributed Computing.
  • Software Engineering.

Technology Areas

  • AI & ML
  • AI & ML - DoD AI Strategy
  • AI & ML - Machine Learning Algorithms
  • AI & ML - Machine Translation