HyperQueue: Efficient and ergonomic task graphs on HPC clusters

Jakub Beránek,Ada Böhm,Gianluca Palermo,Jan Martinovič,Branislav Jansík
DOI: https://doi.org/10.1016/j.softx.2024.101814
IF: 2.868
2024-07-13
SoftwareX
Abstract:Task graphs are a popular method for defining complex scientific simulations and experiments that run on distributed and HPC (High-performance computing) clusters, because they allow their authors to focus on the problem domain, instead of low-level communication between nodes, and also enable quick prototyping. However, executing task graphs on HPC clusters can be problematic in the presence of allocation managers like PBS or Slurm, which are not designed for executing a large number of potentially short-lived tasks with dependencies. To make task graph execution on HPC clusters more efficient and ergonomic, we have created HyperQueue , an open-source task graph execution runtime tailored for HPC use-cases. It enables the execution of large task graphs on top of an allocation manager by aggregating tasks into a smaller amount of PBS/Slurm allocations and dynamically load balances tasks amongst all available nodes. It can also automatically submit allocations on behalf of the user, it supports arbitrary task resource requirements and heterogeneous HPC clusters, it is trivial to deploy and does not require elevated privileges.
computer science, software engineering
What problem does this paper attempt to address?