Kronos is a HPC workload simulator that generates a workload model starting from workload data collected on a real HPC system and then translates the workload model into a set of applications (+schedule) usable to benchmark HPC prototypes.
The software is mainly split into two components:
- Kronos Modeller: ingests HPC workload data and generate a workload model (and schedule)
- Kronos Executor: reads the workload model and deploys it on a real HPC system (through a set of portable "synthetic applications")
Please read the LICENCE file
The Kronos Modeller reads profiled workload data (.KProfile format) and generates a synthetic schedule (KSchedule format). The Kronos Executor reads a synthetic schedule (KSchedule format) and executes it on a HPC system.
The Kronos file formats are listed below. For each format an executable ("kronos-format-<format>) in the bin/ directory will provide a description of each field
- Kronos Executor configuration format (for info:
kronos-format-config-exe
) - Kronos Profile Format ".KProfile" (for info:
kronos-format-kprofile
) - Kronos Schedule Format ".KSchedule" (for info:
kronos-format-kschedule
) - Kronos Results Format ".KResults" (for info:
kronos-format-kresults
)
The schedule file (KSchedule format) generated by the Kronos Modeller is passed on to Kronos Executor that translates the schedule into real applications to be run an a HPC system. Installation instructions of the executor are in :doc:`INSTALL.rst <INSTALL>`.
Load the executor conda environment (read :doc:`INSTALL.rst <INSTALL>` for a procedure to create it):
source activate kronos_executor_env
Setup the executor configuration file
A detailed description of the fields of the configuration file is shown by executing:
kronos-format-config-exe -s
Run the executor:
kronos-executor --config <executor-config-file> <path-to-kschedule-file>
Performance parameters of the run can be retrieved as follows:
kronos-summarise-results <path-to-output-dir>
All the relevant output files can be collected in a tarball by executing:
kronos-collect-results <tarball> <path-to-output-dir>