ALEA GridSim based Job Scheduling Simulator

GUI ALEA is designed allows to study advanced scheduling techniques for planning various types of jobs in Grid-like environments. ALEA is able to deal with common problems of job scheduling in clusters and Grids, like heterogeneity of jobs and resources, dynamic runtime changes such as arrival of new jobs or machine failures adn provides a handful set of features including a large set of various scheduling algorithms, several standard workload parsers and a set of typical fairness-related job ordering policies.

ALEA Simulator is based on the GridSim simulation toolkit which we extended to provide a simulation environment that supports simulation of varying job scheduling problems. To demonstrate the features of the Alea environment, we use a centralised job scheduler which uses (advanced) scheduling techniques for schedule generation. By now local search-based optimization algorithms as well as classical queue-based policies such as FCFS, SJF or Easy Backfilling are supported. The scheduler is capable to handle dynamic situation when jobs appear in the system during simulation. In this case generated schedule is changing through time as some jobs are already finished while the new ones are arriving.

Various workload traces are available either at my page or at Parallel Workloads Archive. Sample data sets are provided within the distribution but only serve for demonstration purposes.

With the lastest version 4, ALEA now represents a rather unique simulation tool with a large set of uncommon simulation capabilities that include, e.g., implementations of various scheduling algorithms, various fair-sharing policies, further enabling realistic system emulations including complex queue setups and various job-to-machine constraints, as well as supporting dynamic user-to-system interactions based on dynamic workload adaptation.

The sources are stored in the Netbeans IDE project format. You can download Netbeans IDE for free from http://www.netbeans.org.
For the proper function you have to include simjava.jar (re-modified in Jan 2009) which is here.
You will also need gridsim.jar which you can download here.


Usage

Important
When using Alea in your paper or presentation, please use the following citation as an acknowledgement. Thank you!

Dalibor Klusáček and Hana Rudová. Alea 2 - Job Scheduling Simulator. In proceedings of the 3rd International ICST Conference on Simulation Tools and Techniques (SIMUTools 2010), ICST, 2010. [download]

BibTeX format:
@inproceedings{alea2,
 author = {Dalibor Klus\'{a}\v{c}ek and Hana Rudov\'{a}},
 title = {Alea 2 -- Job Scheduling Simulator},
 booktitle = {Proceedings of the 3rd International ICST Conference 
              on Simulation Tools and Techniques (SIMUTools 2010)},
 publisher = {ICST},
 year = {2010}, 
}

Software licence:
This software is the result of the research intent No. 0021622419 (Ministry of Education, Youth and Sports of the Czech Republic) and the grant No. 201/07/0205 (Grant Agency of the Czech Republic) and this result is consistent with the expected objectives of these projects. The owner of the result is Masaryk University, a public high school, ID: 00216224. Masaryk University allows other companies and individuals to use this software free of charge and without territorial restrictions under the terms of the LGPL licence.
This permission is granted for the duration of property rights. This software is not subject to special information treatment according to Act No. 412/2005 Coll., as amended. In case that a person who will use the software under this license offer violates the license terms, the permission to use the software terminates.

News

31st December 2015 - Heavily improved Alea (version 4) is on GitHub. Download is now available at https://github.com/aleasimulator. This page is now obsolete and only serves as a backup of older releases.

1st June 2015 - Alea is on GitHub. Download is now available at https://github.com/aleasimulator. This page is now obsolete and new versions will be available at GitHub.

25th June 2013 Minor bug in Alea 3.1 beta has been fixed. EASY backfilling now correctly terminates.

15th March 2013 - Alea 3.1 beta has been released. Newly allows to emulate jobs' RAM requirements. Moreover, fairshare algorithms can be used to prioritize jobs' queues.

20th July 2011 - Alea 3.0 has been released. Newly added methods to simulate runtime estimates. New interfaces to easy add new scheduling algorithm.

2nd October 2009 - Alea 2.1 released. SWF, GWF and MetaCentrum workload format support, new algorithms, Visualization output, ready to use!

20th January 2009 - Alea 2.0 released. New design, better scaling, lots of bugs fixed, GWF support, ready to use!

29th December 2008 - Alea 1.9 available. Workload traces available
20th February 2008 - version 1.5 is GridSim 4.1 compatible
2nd February 2008 - version 1.5 released
28th October 2007 - make sure you use modified simjava.jar when running Alea! [download]

Versions

FAQ - Frequently Asked Questions

How to run the simulator?

Open the project (i.e., the folder you have downloaded) in the Netbeans IDE and add gridsim.jar and simjava.jar into the libraries tab. Please do not use standard simjava.jar but the one that is provided with this simulator, which is here. If you use the standard simjava.jar the simulation will hang. The new version of simjava.jar is neccessary if you want to run multiple simulations by using only one run of your program (1 program contains e.g. 6 different GridSim simulations). Original simjava.jar does not reset its internal variables after the end of one simulation, so the next run cannot start properly.

Please see the screenshot that shows where to manage the libraries in the Netbeans IDE.

It is also important to make simjava.jar appear "earlier" or "before" than gridsim.jar in the library folder.

The design and main entities of Alea 2/3 are shown on these two figures.

If you want to enable visualization output run the simulation with "-v" parameter or manually set the visualize = true; in ExperimentSetup.java.

How to add new scheduling algorithm? (Alea 3.0)

This is generally very simple procedure. We use two interfaces for this: SchedulingPolicy and optionally OptimizationAlgorithm. These interfaces are at package xklusac.algorithms together with existing implemntations of popular scheduling algorithms.,br> In Alea, scheduling policy is used to handle job arrival and to select job for execution. Therefore it contains two methods: addNewJob(GridletInfo gi) and selectJob(). When you want to create your own algorithm you need to: