Author :
Slama, Y. ; Jemni, M. ; Feautrier, P.
Author_Institution :
Inf. Dept., FST, Tunis, Tunisia
Abstract :
Summary form only given. The general process of automatic program parallelization, first consists of determining the source program dependencies, then determining a parallel execution order of all the program operations. This turns out to determine a scheduling and/or an allocation, i.e. a function which associates to each operation, an execution date, and/or a processor number. Such a function is known as temporal transformation if it is a scheduling, a spatial one if it is an allocation, and a space/time transformation, if it is a combination of both. Then, synchronizations must be inserted to satisfy the dependencies between the statements assigned to different processors. Finally, the last stage of parallelization is the generation of the target parallel program, respecting the chosen transformation, and taking into account the target machine characteristics (processor number, memory architecture, etc.). There are many scheduling and allocation methods for polyhedral programs. However, few efficient methods have been devoted to code generation, namely those generating code from allocation. As the latter has generally the advantage of speed and good locality, we are interested in designing an allocation based method of code generation for a loop nest. The generated program has the structure of a nest involving an outer parallel loop enumerating processors and enclosing, in a serial order, the set of statements executed by the same processor.
Keywords :
automatic programming; parallel programming; parallelising compilers; processor scheduling; program control structures; resource allocation; synchronisation; automatic parallelization; code generation; iteration subspaces; loop nest; memory architecture; parallel code generation; polyhedral program; processor number; resource allocation; source program dependency; space transformation; spatial transformation; target machine characteristics; target parallel program; temporal transformation; time transformation; Character generation; Memory architecture; Processor scheduling;