Ergonomie a efektivita workflow na HPC klastrech

Abstract

This thesis deals with the execution of task graphs on High-performance Computing (HPC) clusters (supercomputers), with a focus on efficient usage of hardware resources and ergonomic interfaces for task graph submission. Task-based programming is a popular approach for defining scientific workflows that can be computed on distributed clusters. However, executing task graphs on su- percomputers introduces unique challenges, such as performance issues caused by the large scale of HPC workflows or cumbersome interactions with HPC allocation managers like PBS (Portable Batch System) or Slurm. This work examines what are the main challenges in this area and how do they affect task graph execution, and it proposes various approaches for alleviating these challenges, both in terms of efficiency and developer ergonomics. This thesis provides three main contributions. Firstly, it provides a task graph simulation en- vironment that enables prototyping and benchmarking of various task scheduling algorithms, and performs a comprehensive study of the performance of various task schedulers using this envi- ronment. Secondly, it analyzes the bottlenecks and overall performance of a state-of-the-art task runtime Dask and provides an implementation of an alternative Dask server which significantly improves its performance in HPC use-cases. And primarily, it introduces a unified meta-scheduling and resource management design for effortless execution of task graphs on heterogeneous HPC clusters that facilitates efficient usage of hardware resources. It also provides a reference im- plementation of this design within an HPC-tailored task runtime called HyperQueue, which is available as open-source software under the MIT (Massachusetts Institute of Technology) license at https://github.com/it4innovations/hyperqueue.
Tato práce se zabývá spouštěním grafů úloh na vysoce výkonných systémech (superpočítačích), se zaměřením na efektivní využití výpočetních zdrojů a poskytnutí ergonomických rozhraní pro návrh a spouštění grafů úloh. Programování na základě úloh je oblíbeným způsobem pro definici vědeckých soustav výpočtů, které jsou určeny pro spouštění na distribuovaných systémech. Nicméně spouštění těchto úloh na superpočítačích přináší unikátní výzvy, například problémy s výkonem způsobené značným rozsahem úloh nebo problematickou interakci úloh se systémy pro správu alokací na superpočítačích, jako jsou například PBS (Portable Batch System) nebo Slurm. Tato práce zkoumá, jaké jsou hlavní problémy ovlivňující spouštění úloh v této oblasti a navrhuje různé přístupy, které by měly pomoci tyto problémy částečně či zcela vyřešit, a to jak v oblasti výkonu, tak i ergonomie vývoje. Tato práce poskytuje tři hlavní přínosy. Prvním z nich je prostředí pro simulaci spouštění grafů úloh, které umožňuje jednoduché experimentování a měření různých plánovacích algoritmů. Toto prostředí bylo použito pro provedení rozsáhlé studie kvality různých plánovačů úloh. Dále práce analyzuje výkonnostní charakteristiku moderního nástroje pro spouštění úloh Dask, a poskytuje alternativní implementaci Dask serveru, která výrazně zvyšuje jeho efektivitu v případech, které vyžadují vysoký výkon. Hlavním přínosem práce je metoda pro plánování úloh a správu zdrojů, která umožňuje jednoduché spouštění grafů úloh na heterogenních superpočítačích, které zároveň maximalizuje využití dostupných výpočetních zdrojů. Práce také poskytuje referenční implemen- taci využívající této metody v rámci nástroje HyperQueue, který je dostupný jako software s otevřeným zdrojovým kódem pod licencí MIT (Massachusetts Institute of Technology) na adrese https://github.com/it4innovations/hyperqueue.

Description

Citation