Automatic partitioning and virtual scheduling for efficient parallel execution

  • Authors:
  • C. L. McCreary;D. H. Gill

  • Affiliations:
  • Auburn University;The Mitre Corporation

  • Venue:
  • ACM-SE 30 Proceedings of the 30th annual Southeast regional conference
  • Year:
  • 1992

Quantified Score

Hi-index 0.00

Visualization

Abstract

The research of this report gives a method for automatic determination and scheduling of parallel modules from an existing sequential computation.In compiling a sequential program for execution on a multiprocessor system, there are four major problems to be solved: [26]1. Analyzing the data dependences and control dependences in the program.2. Identifying parallelism in the program.3. Partitioning the program into grains of sequential tasks.4. Scheduling the tasks on processors.The work of this paper addresses the last three problems. The automatic dependence analysis, the phase that detects where parallelism is constrained, has been studied extensively, and there exist a number of tools (e.g. PAT[3], PTOOL[2], Parafrase[21], Faust[19] and PTRAN[1]) that create data flow and control flow graphs from sequential code. A directed graph is typically used to model the dependence relation. Usually, a node of the graph G = (N,E) represents an operation such as a statement or block of statements, and an edge (u,v) represents the dependence of v on u, forcing the execution of u before v. For both data and control dependence, the key is to represent only essential dependence constraints as edges. This paper assumes that a dependence graph exists and discusses a method for performing the last three tasks on the dependence graph. The technique decomposes the data flow graph into grains of the appropriate size for any underlying homogeneous multiprocessor architecture, determines which grains should be executed in parallel and which must be executed sequentially, and schedules those grains onto processors.