LAPIS – Simulations for Opportunistic Resources

The LAPIS simulator enables the simulation of job execution and scheduling with a focus on opportunistic resources. The scheduling internally builds on concepts from HTCondor. The opportunistic resources are managed building on the projects TARDIS and COBalD. The simulation builds on importing well-established input formats to generate the jobs and set up the infrastructure either in an opportunistic or classical fashion.

Simple Command Line Interface

Although LAPIS is written to provide an extensive framework for setting up advanced simulation, it also provides a simple command line interface to get you started quickly.

You have the options to start in 1) static, 2) dynamic, or 3) hybrid mode enabling you to compare the various simulation scenarios.

Static

The static environment provides a classical setup where all resources are available exclusively for processing the jobs for the whole runtime of the simulation.

python cli/simulate.py --log-file - static --job-file <path-to-workload> swf \
   --pool-file <path-to-pool-definition> htcondor

Dynamic

The dynamic environment builds on volatile, opportunistic resources exclusively. Based on the amount of jobs being processed within the simulation COBalD controllers decide about the integration and disintegration of resources.

python cli/simulate.py --log-file - dynamic --job-file <path-to-workload> swf \
   --pool-file <path-to-pool-definition> htcondor

Hybrid

The hybrid simulation environment provides a baseline of static resources that are available for the whole runtime of the simulation. These static resources are dynamically complemented with volatile, opportunistic resources based on current job pressure.

python cli/simulate.py --log-file - hybrid --job-file <path-to-workload> swf \
   --static-pool-file <path-to-pool-definition> htcondor \
   --dynamic-pool-file <path-to-pool-definition> htcondor

As you can see from the example above, you can even mix and match different input formats to create your required simulation environment. An extensive documentation about the CLI can be found in the Command Line Interface chapter.

Simple Framework for Advanced Use Cases

The simulation is event-driven and builds on the lightweight simulation framework μSim. Due to the human-centric API of μSim, it is a charm to actually read and extend the simulation for adaptation to various use cases.

Indices and tables