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