Compile-Time Partitioning and Scheduling of Parallel Programs

Abstract

Partitioning and scheduling techniques are necessary to implement parallel languages on multiprocessors. Multiprocessor performance is maximized when parallelism between tasks is optimally traded off with communication and synchronization overhead. The authors present compile-time partitioning and scheduling techniques to achieve this tradeoff. One of the biggest challenges facing compiler writers is to efficiently implement programming languages on multiprocessors. We need to find compilation techniques for general-purpose parallel languages; these techniques should be adaptable to a wide range of multiprocessor architectures. There are three fundamental problems to be solved when compiling a program for parallel execution on a multiprocessor: 1) Identifying potential parallelism; 2) Partitioning the program into sequential tasks; and 3) Scheduling the concurrent execution of these tasks. This document addresses the latter two problems and suggest that these be solved at compile- time instead of run-time for applications with fairly predictable execution times.

Open PDF

Document Details

Document Type
Technical Report
Publication Date
Jan 01, 1987
Accession Number
ADA177641

Entities

People

  • John Hennessy
  • Vivek Sarkar

Organizations

  • Stanford University

Tags

Communities of Interest

  • C4I

DTIC Thesaurus Topics

  • Algorithms
  • Application Software
  • Compilers
  • Computational Science
  • Computations
  • Computer Programming
  • Computer Science
  • Computers
  • Cost Estimates
  • Frequency
  • Instructions
  • Language
  • Parallel Computing
  • Parallel Processing
  • Probability Distributions
  • Programming Languages
  • Recursive Functions

Fields of Study

  • Computer science
  • Engineering

Readers

  • Operations Research
  • Parallel and Distributed Computing.