KOALA is a grid scheduler that has been designed, implemented, and deployed by the Parallel and Distributed Systems (PDS) group of Delft University of Technology on the DAS-2, the DAS-3, and the DAS-4 multicluster systems in the context of the Virtual Lab for e-Science (VL-e), the Guaranteed Delivery in Grids (Guard-G), and the Infrastructure Virtualization for e-Science (part of the Dutch national COMMIT research program in computer science) research projects.
The main features of KOALA are:
- Processor and data co-allocation: Co-allocation is the simultaneous allocation of resources in multiple clusters to single applications, which consist of multiple components. KOALA supports co-allocation by starting the components of a single application on different clusters simultaneously, after allocating those clusters and transferring necessary files required for the execution of the application.
- Malleable jobs support: KOALA supports malleable jobs by sending grow messages or shrink messages to the malleable job runners when idle processors have become available or a rigid job of a higher priority is about to run. Runners are job submission and monitoring tools.
- Parameter sweep application (PSA) support: KOALA supports submitting PSAs, and lets them run in a Cycle-Scavenging way, which means that they have a low priority so are not in the way of the regular users.
- Extensible: With KOALA, new scheduling policies can be added and/or new runners for new application types can be added without affecting the operation of KOALA. Users can also write their own runners by following the guidelines provided by KOALA with ease.
- Fault tolerance: KOALA has been designed with fault tolerance mechanisms that deal with the reliability issues of the grid infrastructure.
- MapReduce clusters on demand: KOALA supports submitting jobs for deploying MapReduce clusters.
- Cloud support in KOALA: Since 2013 KOALA also supports submission of jobs to clouds.