ScheduleGen V 0

ScheduleGen V 0.1
Instructions Manual
ScheduleGen is a demo program written in Python® that solves a linear
program of a steady state scheduler and shows an example of a possible
schedule, based on the model of the paper “Scheduling Strategies for
Master-Slave Tasking on Heterogeneous Processor Platforms” [1] and
research work from Dr Jaime Seguel and Luis Fernando De la Torre.
The first version of ScheduleGen V. 0.1 is intended for people who are
familiar with Python® programming language.
How ScheduleGen works
The program takes its input from a text file, where the user puts computing
node time and communication times. It assumes a platform graph consisting
of four nodes with communication links. It outputs a Gantt chart gif file
with the schedule founded.
ScheduleGen use a Linear programming software called LINSOLVE from
[2]. ScheduleGen calls LINSOLVE with an input file. LINSOLVE returns an
output file that contains the solution of the linear programming model.
System requirements
ScheduleGen runs in Windows® XP with Python environment previously
installed. Despite ScheduleGen runs on Python environment, it will not run
on Linux or any other platform that supports Python that is because of
LINSOLVE and some operating system calls. In terms of hardware, it just
needs an Intel computer with 512 Mb, 1 Mb RAM memory.
Installation
First, install the Python environment V 2.4 [3] for Windows32. File called
python-2.4.3.msi
Then, install PIDDLE [4], a graphics library that allows to draw graphics in
jpeg images. Use piddle-1.0.15, the setup.py file. It is a Python installation.
After you installed these programs, you have to install PIL [5]. Use PIL1.1.5.win32-py2.4.exe.
Then, you can install the graph library NetworkX [6]. This library allows
you to work with graph data structures and all its operations. You can use
networkx-0.31.win32.exe file.
You have to set your PATH environment variable in order to use Python in
your system.
How can you use ScheduleGen?
First, create a directory in your prefer location. Put all files in this directory
Here you can see the demo.py file, gen_schedule.py. These files are the most
important programs.
Open the demo.py file and change the directory path in line 55
You have to do this because in this first edition of ScheduleGen, there is no
automatic installation program. This supposes to be a next version.
Please, be sure that you have all LINSOLVE files.
Then, you can run the demo.py with Python. Set values in the
parameters.txt file:
#w values. Top value is the master processor
1
3
4
6
*cij values
P1 P2 2
P1 P3 1
P2 P4 3
P3 P4 3
ScheduleGen takes this and the file model.txt as input. It replaces all tags in
model.txt and creates a new file LP.txt. This file is the input for
LINSOLVE.EXE. This file contains the linear program already changed with
user parameters. Then, LINSOLVE outputs solut.txt, the solution of the
problem.
Demo.py reads this file and updates the graph platform according to the
specifications in the model. Then it sets all values in the graph.
With the Generate Schedule button you can see an example of how the
graph platform become to a bipartite graph and then it finds mathchings
that describe a possible schedule. Demo.py calls gen_schedule.py that draws
the schedule and creates a gif file with its gantt chart.
Remember that this version of ScheduleGen does not compute bipartite
graphs algorithms; it just shows an example of how to find it. These
algorithms are planned to be implemented later.
References
[1] C. Banino, O. Beaumont, L. Carter, J. Ferrante, A. Legrand and Y. Robert,
Scheduling Strategies for Master-Slave Tasking on Heterogeneous Processor
Platforms, IEEE Transactions on Parallel and Distributed Systems 15 (4)
(2004) 319-330.
[2]LINSOLVE
http://archives.math.utk.edu/software/msdos/discrete.math/tslin/.html
[3] Python: http://www.python.org/
[4] Piddle: http://piddle.sourceforge.net/
[5] PIL: http://piddle.sourceforge.net/PIL/
[6] NetworkX: https://networkx.lanl.gov/wiki