Allocating programs containing branches and loops within a multiple processor system
IEEE Transactions on Software Engineering
Communication-sensitive heuristics and algorithms for mapping compilers
PPEALS '88 Proceedings of the ACM/SIGPLAN conference on Parallel programming: experience with applications, languages and systems
FAUST: an environment for programming parallel scientific applications
Proceedings of the 1988 ACM/IEEE conference on Supercomputing
Automatic determination of grain size for efficient parallel processing
Communications of the ACM - Special issue: multiprocessing
An overview of the PTRAN analysis system for multiprocessing
Proceedings of the 1st International Conference on Supercomputing
Using cumulative graphic traces in the visualization of sorting algorithms
ACM SIGCSE Bulletin
Journal of Parallel and Distributed Computing - Special issue: software tools for parallel programming and visualization
Theory of 2-structures. Part I: clans, basic subclasses, and morphisms
Theoretical Computer Science
Theory of 2-structures. Part II: representation through labeled tree families
Theoretical Computer Science
Primitivity is hereditary for 2-structures
Theoretical Computer Science
Supercompilers for parallel and vector computers
Supercompilers for parallel and vector computers
Principles of visual programming systems
Principles of visual programming systems
CSC '88 Proceedings of the 1988 ACM sixteenth annual conference on Computer science
Optimizing Supercompilers for Supercomputers
Optimizing Supercompilers for Supercomputers
Partitioning and Scheduling Parallel Programs for Multiprocessors
Partitioning and Scheduling Parallel Programs for Multiprocessors
Visual Languages
Identifying task-level parallelism by functional transformation with side-effect domains
Proceedings of the 47th Annual Southeast Regional Conference
Hi-index | 0.00 |
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.