ELiSE is a framework for fast prototyping and evaluation of scheduling and co-scheduling algorithms in HPC systems. The main focus is to be a simple, fast, small and easily extensible tool. ELiSE is also flexible providing a graphical interface, a web interface and a command line interface.
elise-gui-demo.mp4
-
🎞️ Presentation 📂 View the Slides
-
📝 JSSPP 2025 📂 View the Paper
Stay connected with the ELiSE:
- Join our community!
- Get notified about new commits, bug fixes, and releases
- Ask questions and get support from the community
Using Python (Windows and Linux)
conda activate elise
cd framework
python elise.py
Distributable in Linux
cd /path/to/installed/elise
./elise
Distributable in Windows
You can create a shortcut to elise.exe. Otherwise from a Command Prompt or PowerShell:
cd \path\to\installed\elise
.\elise.exe
Using Python (Windows and Linux)
conda activate elise
cd framework
python elise.py --webui
Distributable in Linux
cd /path/to/installed/elise
./elise --webui
Distributable in Windows
cd \path\to\installed\elise
.\elise.exe --webui
A schematic file needs to be provided as input in order to execute ELiSE in batch mode
Using Python (Windows and Linux)
conda activate elise
cd framework
python elise.py -f schematic.yml -p [mp,openmpi,intelmpi]
Distributable in Linux
cd /path/to/installed/elise
./elise -f schematic.yml -p [mp,openmpi,intelmpi]
Distributable in Windows
cd \path\to\installed\elise
.\elise -f schematic.yml -p [mp,openmpi,intelmpi]
ELiSE distributes based on the inputs and schedulers configured for an experiment. The providers for parallelization are:
- Python's multiprocessing library (single host)
- Open MPI, tested on Linux (multi-host)
- Intel MPI, tested on Windows (multi-host)
A table detailing the operating systems and MPI versions tested will be included in future updates. Preliminary tests suggest that with some minor adjustments, achieving compatibility should be straightforward.
In order to start developing a new algorithm or a core feature for ELiSE, the conda environment should be built. Two yaml files are provided:
- for Linux: env_linx64.yml
- for Windows: env_win64.yml
For Linux:
# Install the necessary dependencies
conda env create -f env_linx64.yml
# Starting the environment
conda activate elise
For Windows:
# Install the necessary dependencies
conda env create -f env_win64.yml
# Starting the environment
conda activate elise
Although there are three interfaces for ELiSE, only two matter. The batch mode and WebUI. The source code for batch mode is located in framework/batch, while the WebUI source code can be found in framework/webui.
The WebUI serves as a graphical interface for the batch mode of ELiSE, ultimately invoking it to run experiments. Additionally, the GUI acts as a wrapper around the WebUI and operates on the localhost.
The main components of ELiSE consist of the loosely connected packages api/ andframework/realsim:
- api: This package is designed for loading and editing raw data, which will be utilized to create a workload for simulation runs.
- realsim: This library defines key elements of a simulation, including the Compute Engine, jobs, database, cluster, scheduling algorithms, and plotting features.