Introduction
Last updated on 2025-06-24 | Edit this page
Overview
Questions
- How can I run an HPC workflow reproducibly?
- What is the easiest way to create a scaling experiment for an HPC application?
- How do I identify the optimal runtime configuration for an application on an HPC system?
Objectives
- Enumerate the benefits of workflow automation.
- Describe potential use cases for HPC workflow automation using JUBE.
When applying for computing time on HPC systems, applicants are often required to provide measurements on different scales of parallelism. Furthermore, preparing performance measurements often involves an application-specific workflow as well as platform-specific configurations. The objective of this lesson is to enable users of HPC systems to run performance measurements with minimal intervention with high reproducibility, using the Jülich Benchemarking Environment (JUBE) [1].
It is important to understand that JUBE, while emerged as a benchmarking system, actually is a workflow management system, where application and system benchmarking is one of its applications. Further use cases may include running multiple HPC workflows as integration tests during application development and defining reproducible execution workflows for data generation for publications.
Reproducibility Note
JUBE is an automation tool. That means, it does not intrinsicly make your workflows reproducible, but it lets you automate all actions that can make your workflow reproducible.
The key benefits of using JUBE are:
- It enables systematic and reproducible benchmarks.
- It provides a flexible, script-based framework to set up tasks and control various aspects of the execution.
- It allows for custom workflows that can adapt to different HPC platforms.
- It provides a powerful tagging systems to influence execution of a given workflow.
- It automatically isolates your workflow steps so concurrent tasks don’t overwrite or re-use files in unintentionally shared execution environments.
- It enables efficient parameter space exploration.
- It allows to easily retrieve strings from runtime output and create tables and CSV files.
Discussion
Consider your own workflows on an HPC system. What individual steps are involved? Please discuss this in groups.
Steps may include:
- Loading and preparing the software environment
- Building a software package
- Creating a runtime configuration for your application
- Creating a scheduler job script
- Submitting a job to the scheduler
- Extracting strings from application output.
JUBE is written and maintained by the Jülich Supercomputing Centre at Forschungszentrum Jülich in Germany. It is written in Python 3, but is backwards-compatible to Python 2.x. The user can write configurations in XML or YAML syntax. It is freely available for download and also available via HPC software package managers, such as Spack and EasyBuild.
Challenge
Create an empty workspace for all subsequent challenges in this lesson.
Key Points
- Workflow automation aids in getting reproducible results.
- JUBE enables execution and management of complex workflows on HPC systems.
- JUBE simplifies exploration of a large parameter space of measurements.
- JUBE automatically isolates individual workpackages of a run in separate directories steps to avoid individual concurrent workpackages to overwrite or unintentional reuse of intermediate data.
- JUBE does not intrinsically create fully reproducible workflows, but the user has to manually record any parameters that make the workflow reproducible.