GRAPH BASED DATA FLOW PROGRAMMING OF PARALLEL MACHINES

STEPHAN V BECHTOLSHEIM, Purdue University

Abstract

This thesis proposes a new level approach to the programming of parallel machines with distributed memory. On the higher level a static data flow graph is constructed. On the lower level the nodes of these d-graphs are programmed using a high level language. Operators are programmed in phases where each phase starts with reading in values followed by a computational step. At the end values are written out. The edges of the graph determine the communications partners. The programming approach is strictly hierarchical: in a d-graph a node can be either primitive, i.e. a simple operator or it can represent another d-graph. Machine size and topology independence are achieved by using a parallel machine as simulator for the machine independent d-graph. Two different simulation techniques depending on the property of the operators are investigated. A purely data dependency based execution is used, except if the sequence of phases executed by operators can be determined at compile time in which case the scheduling of the execution of the operators can be simplified. The problem of how such a d-graph can be mapped onto a parallel machine is investigated. Furthermore cases in which an advance decision can be made about whether operators in a d-graph are compatible with each other or not, looking at the number of elements they generate or consume on an edge. Types are introduced to aid in the composition of d-graphs: they are used to check whether the combination of some primitive operators are legal. They are also used to aid in the substitution of nodes by other d-graphs. Finally the ideas are extended to dynamic d-graphs: now operators are allowed to generate d-graphs and operators.

Degree

Ph.D.

Subject Area

Computer science

Off-Campus Purdue Users:
To access this dissertation, please log in to our
proxy server
.

Share

COinS