Scheduling and Allocation - A Guide through the Source Code
This documentation describes the implementation of methods for calculating
the schedule and the placement of a program, which were developed for the
project LooPo (Loop parallelization in the Polytop model), namely:
We will not comment the sources line by line, since this is already done in the files, but give an overview of the relationships between the files and
other general decisions made in the implementation.
The theory for these methods is described in the master thesis
Automatische Methoden zur Parallelisierung
im Polyedermodell, so we will not treat the theory of the methods and
suppose the reader to be familiar with it. To give the position of files our
starting point will be the directory loopo, that contains all sources,
which are part of the project. The implementation uses
a library of mathematical functions (placed in general), which was also
implemented for this work. Since all methods use the same representation for
statements, dependences,... there is a directory scheduler/commonschedal, that holds
the corresponding common source files.
Currently all methods for scheduling are collected in one binary scheduler/scheduler, also that for the placements in allocator/allocator.
A parameter given by the frontend determines which method should be applied to
a given programm. For the scheduling methods this is done in the file
scheduler/mainsched.cc,
which also performs the initialization (reading the statement and dependence
description files). At the moment the binary for the placement methods is
started by the scheduler. One reason for this is, that Lamports method
calculates a schedule and a placement. So calling another placement
method after this would overwrite the already produced placement.
But this will be changed.
The output of the scheduling methods is a file with the name
ProjectName.SCHED, where ProjectName is the selected name of the project.
In the same way the placement methods produce a file ProjectName.PLACE.
All these files are placed in the current temporary directory.
For further questions please email to me.
Christian Wieninger
e-mail: wieninge@brahms.fmi.uni-passau.de
To-Do-List for further projects