From 26ffd8b8f26d4e2e0b00af0c2a87c6a3bcd81ccb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Ber=C3=A1nek?= Date: Mon, 14 Oct 2024 19:11:34 +0200 Subject: [PATCH 1/2] Extend comparison with other tools I already wrote all this for my thesis, but did not actually use it in the end because the thesis was too long. So at least we can present the descriptions here :) --- docs/imgs/hq-comparison-table.png | Bin 0 -> 165433 bytes docs/other-tools.md | 149 ++++++++++++++++++++++++++---- 2 files changed, 130 insertions(+), 19 deletions(-) create mode 100644 docs/imgs/hq-comparison-table.png diff --git a/docs/imgs/hq-comparison-table.png b/docs/imgs/hq-comparison-table.png new file mode 100644 index 0000000000000000000000000000000000000000..faac918c97d7bc3a8af6e623c5c6158abf059d45 GIT binary patch literal 165433 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 Y?04y8?tOcr$q}T%)78&qol`;+00T*oKL7v# literal 0 HcmV?d00001 diff --git a/docs/other-tools.md b/docs/other-tools.md index 6a3eaad10..d2e20e675 100644 --- a/docs/other-tools.md +++ b/docs/other-tools.md @@ -1,7 +1,43 @@ # Comparison with other task runtimes -There is a large number of task runtimes, so we cannot list all of them here. Below you can find -a selection of other task runtimes that we have experience with and/or that are somehow relevant for -HyperQueue. +There is a very large number of different task runtimes, with various performance characteristics, +feature sets, programming models and trade-offs, and it is of course infeasible to compare HyperQueue with all of them. One of HyperQueue's authors has written a [PhD thesis](https://kobzol.github.io/phd) titled `Ergonomics and efficiency of workflows on HPC clusters`, which includes a section that [compares](https://kobzol.github.io/phd/#pf9b) HyperQueue with several other tools. We invite you to examine this section (and the whole thesis) if you want to find out more about the relation of HyperQueue to other task runtimes. + +> The descriptions of other task runtimes presented on this page are actual as of October 2024. + +Below you can find a table[^table], which compares selected features of twelve task runtimes that we have experience with and/or that we think are relevant for HyperQueue. You can find more information about the table in Section 7.6 of the thesis. + +![Comparison of HyperQueue with other task runtimes](./imgs/hq-comparison-table.png) + +[^table]: It corresponds to Table 7.2 from the PhD thesis. + +Below we also provide **opinionated**[^opinionated] descriptions of selected task runtimes that we think can be reasonable compared with HyperQueue. + +[^opinionated]: If you think that our description is inaccurate or misleading, please [file an issue](https://github.com/It4innovations/hyperqueue/issues/new). + +- [GNU Parallel](#gnu-parallel) +- [HyperShell](#hypershell) +- [Dask](#dask) +- [Ray](#ray) +- [Parsl](#parsl) +- [PyCOMPSs](#pycompss) +- [Pegasus](#pegasus) +- [Balsam](#balsam) +- [AutoSubmit](#autosubmit) +- [FireWorks](#fireworks) +- [SnakeMake](#snakemake) +- [Merlin](#merlin) + +## GNU Parallel +[GNU Parallel](https://www.gnu.org/software/parallel/) is a command-line utility for executing many tasks in parallel on a set of computational nodes. It does not offer many advanced task runtime features, but it does one thing well; it enables a parallelized and even distributed execution of a set of programs with a single command invocation. HyperQueue takes inspiration from this approach, as it offers a CLI that can be used to execute task graphs with many tasks and complex resource requirements with a single command. + +## HyperShell +[HyperShell](https://hypershell.readthedocs.io/en/latest/index.html) is primarily designed for +executing many homogeneous tasks using the command-line. It does introduce several useful features +on top of [GNU Parallel](#gnu-parallel), such as automatic task re-execution when a task fails and storing the task state in a database, which enables users to observe the history of executed workflows. It also provides a simple autoscaling functionality that automatically submits allocations. However, tasks in HyperShell are strictly tied to allocations; by default, one task is submitted in a single +allocation. It does provide the option to [bundle](https://hypershell.readthedocs.io/en/latest/api/submit.html) several tasks together, but users +have to specify the maximum bundle size explicitly, which makes load balancing inflexible. +HyperShell does not support task dependencies; therefore, it cannot be used to execute general +task graphs. ## Dask [Dask](https://www.dask.org/) is a task runtime that is very popular within the Python community, @@ -15,25 +51,100 @@ nodes. Dask does not support arbitrary [resource requirements](jobs/resources.md written in Python, it can [have problems](https://arxiv.org/abs/2010.11105) with scaling to very large task graphs. -If your use-case is primarily Python-based, you should definitely give Dask a try, it's a great tool. +If your use-case is primarily Python-based though, you should definitely give Dask a try, it's a great tool. + +## Ray +[Ray](https://docs.ray.io) is a distributed task runtime primarily aimed at parallelizing the +training and inference of machine learning models in Python. It uses a +relatively unique architecture that leverages distributed scheduling; not all task submission and +scheduling decisions need to go through a central location, unlike most other compared task runtimes including HyperQueue. This allows it to scale to an +enormous amount of resources, millions of tasks and thousands of nodes. However, in order to enable +this level of scalability, the workflow itself has to be implemented in a way where tasks submit +new tasks from worker nodes dynamically. Therefore, batch computing use-cases that simply want to +execute a predetermined workflow might be unable to achieve such high performance. + +Same as [Dask](#dask), it offers basic resource requirements and it also supports fractional resources +and related resource groups. However, it does not allow expressing multi-node tasks. In contrast to Dask, it is internally implemented in *C++*, which introduces much less overhead than Python. +Even though Ray provides some autoscaling functionality, it does not support Slurm or other +HPC allocation managers. In general, it is not specialized for HPC idiosyncrasies nor for executing arbitrary task graphs; even though it has a low-level interface for creating tasks through Python functions, it primarily focuses on generating task graphs automatically from high-level descriptions of machine learning pipelines, which are then executed e.g. on cloud resources. + +## Parsl +[Parsl](https://parsl.readthedocs.io/) is another representative of a Python-oriented task runtime. It +allows defining tasks that represent either Python function calls or command-line application +invocations using Python. Computational resources in Parsl are configured through a +[block](https://parsl.readthedocs.io/en/stable/userguide/execution.html#blocks), a set of preconfigured resources (nodes) designed for executing specific kinds of tasks. In addition to blocks, users also have to specify [launchers](https://parsl.readthedocs.io/en/stable/userguide/execution.html#launchers), which +determine how will be each task executed (e.g. using a Slurm or an MPI +execution command) and also an [executor](https://parsl.readthedocs.io/en/stable/userguide/execution.html#executors), which controls how will be tasks +scheduled and batched into allocations and if the execution will be fault-tolerant. While +these options let users specify how will be their task graph executed on a very granular level, it +requires them to tune this configuration per task graph or target cluster; the +configuration system is also relatively complex. This is in contrast to HyperQueue, which has a fully general resource management model that does not require users to configure anything; tasks are automatically load balanced across all available workers regardless of allocations and workers do not have to be preconfigured for specific tasks. + +Parsl has basic support for resource requirements, but does not allow +creating custom user-specified resource kinds. It also allows specifying the number of nodes +assigned to a task; however, such tasks have to be executed within a single block; Parsl +does not allow executing multi-node tasks across different blocks or allocations. + +## PyCOMPSs +[PyCOMPSs](https://pypi.org/project/pycompss/) is a Python interface for executing task graphs on top of the COMPSs distributed system. It allows defining arbitrary task graphs and has comprehensive support +for multi-node tasks and basic resource requirements, but it does not allow users to define custom +resource requirements. It was [extended](https://www.researchgate.net/publication/327751922_Executing_linear_algebra_kernels_in_heterogeneous_distributed_infrastructures_with_PyCOMPSs) to support configuration of +NUMA nodes for individual tasks. In terms of scheduling, it implements several +simple scheduling algorithms; users can select which one should be used. Assignment of tasks to allocations is performed in a manual way; users enqueue a task graph (an application), which is then fully executed once that allocation is started. + +COMPSs provides basic support for automatic allocation that can dynamically react to computational load. However, it can only add or remove nodes from a primary allocation that is always tied to the execution of a single application; it does not provide fully flexible load balancing. PyCOMPSs is slightly more challenging to deploy than most of the other compared task runtimes, since it also requires a Java runtime environment in addition to a Python interpreter. + +## Pegasus +[Pegasus](https://pegasus.isi.edu/documentation/index.html) is a very general workflow management system that can execute %workflows on a wide range of clusters, from HPC to cloud. It provides support +for various additional features that have not been examined in this thesis, such as data provenance +or advanced file management and staging. Its workflows are usually defined using workflow files, +which enable specifying dependencies both explicitly or by inferring them from input/output files +of tasks. It also supports basic resource requirements, but does not allow defining custom +resource kinds nor using multi-node tasks. By default, it maps each +task to a single allocation, but it also allows users to cluster tasks together using +one of several predefined modes. However, users have to configure this clustering manually; it is +not performed fully automatically like in HyperQueue. + +In terms of deployment, it has the most complex set of runtime dependencies out of the compared task +runtimes, as it requires not only a Python interpreter and a Java runtime environment, but also the +[HTCondor](https://htcondor.readthedocs.io/en/latest/index.html) workload management system, which can be non-trivial to install on an HPC cluster. Pegasus delegates some of its functionality to +HTCondor; it requires a configured instance of HTCondor before it can execute workflows on a +cluster. + +## Balsam +[Balsam](https://balsam.readthedocs.io/en/latest/) is a task runtime for executing workflows defined using Python on HPC clusters. It uses a similar fully flexible method for mapping tasks to +allocations as HyperQueue, including automatic allocation; however, it is limited to a +single allocation queue, similarly as in [Dask](#dask). It supports multi-node tasks, +although users have to statically preconfigure workers to either execute single-node or multi-node +tasks. It does not allow specifying custom resource kinds nor more advanced resource +management offered by HyperQueue, such as [resource variants](jobs/jobfile.md#resource-variants). The Balsam server requires access to a PostgreSQL database instance, which makes +its deployment slightly more challenging than some other tools that do not need a database or that +can use an embedded database like SQLite. + +## AutoSubmit +[AutoSubmit](https://autosubmit.readthedocs.io/) is a high-level tool for executing workflows and experiments. It focuses primarily on experiment tracking, data provenance and workflow automation. In its default mode, each task corresponds to a single allocation, which is not ideal for short running tasks; AutoSubmit is designed primarily for coarse-grained workflows. It provides a way to +bundle multiple tasks into the same allocation using [wrappers](https://autosubmit.readthedocs.io/en/master/userguide/wrappers/index.html), but same as with +e.g. [Pegasus](#pegasus), this has to be preconfigured statically by the user; it is not +performed automatically. AutoSubmit does not support custom task resource kinds +and it also does not support direct data transfers between tasks nor output streaming. + +## FireWorks +[FireWorks](https://materialsproject.github.io/fireworks/index.html) is a workflow system for managing the execution of workflows on distributed clusters. It allows defining task graphs using either workflow files or through a Python API. It supports fault-tolerant task execution, although failed tasks +have to be re-executed manually. FireWorks does not seem to support any task resource +requirements; resources can only be configured for individual allocations. Its meta-scheduling +approach is relatively complicated; it provides several ways of mapping tasks to allocations and +individual workers with different trade-offs rather than providing a unified way that users would +not have to worry about. FireWorks requires a MongoDB database to store tasks, which can make its deployment slightly challenging. ## SnakeMake -[SnakeMake](https://snakemake.readthedocs.io/en/stable/) is a workflow execution system that focuses -on scientific reproducibility. It lets users specify computational workflows using a DSL that combined -configuration files and Python. It can operate both as a meta-scheduler (outside of PBS/Slurm) and -also as a classical task runtime within a PBS/Slurm job. +[SnakeMake](https://snakemake.readthedocs.io/en/stable/) is a popular workflow management system for executing coarse-grained workflows defined using workflow files that can be extended with inline Python code. It can operate both as a meta-scheduler (outside of PBS/Slurm) and also as a classical task runtime within a PBS/Slurm job. Its workflows are based on files; tasks are expected to produce and consume files, which are also used to infer dependencies between them. This can pose an issue with a large number of tasks, as the created files can overload distributed filesystems; no output streaming is offered by the task runtime. It enables assigning both known (e.g. CPU or memory) and custom resource kinds to tasks. It also allows specifying the number of nodes required for each task. -With SnakeMake, you can submit a workflow either using a task-per-job model (which has high overhead) -or you can partition the workflow into several jobs, but in that case SnakeMake will not provide load -balancing across these partitions. HyperQueue allows you to submit large workflows without partitioning -them manually in any way, as the server will dynamically load balance the tasks onto workers from different -PBS/Slurm allocations. +With SnakeMake, you can submit a workflow either using a task-per-job model (which has [high overhead](https://docs.nersc.gov/jobs/workflow/snakemake/)) or you can partition the workflow into several jobs, but in that case SnakeMake will not provide load balancing across these partitions, and partitioning the jobs manually can be quite arduous. HyperQueue allows you to submit large workflows without partitioning them manually in any way, as the server will dynamically load balance the tasks onto workers from different PBS/Slurm allocations. -Since SnakeMake workflows are defined in configuration files, it's a bit more involved to run -computations in SnakeMake than in HyperQueue. On the other hand, SnakeMake lets you define more -complex workflows with improved traceability and reproducibility. +Since SnakeMake workflows are defined in configuration files, it's a bit more involved to run computations in SnakeMake than in HyperQueue. On the other hand, SnakeMake lets you define more complex workflows with improved traceability and reproducibility. ## Merlin -[Merlin](https://github.com/LLNL/merlin) is a workflow execution system focused on HPC-scale -machine learning workflows. It has a relatively similar architecture to HyperQueue, although it -uses configuration files rather than CLI for specifying jobs. +[Merlin](https://github.com/LLNL/merlin) is a task queueing system that enables execution of large workflows on HPC clusters. It leverages the [Celery](https://docs.celeryq.dev/en/stable/) task queue for distributing tasks to workers and the [Maestro](https://maestrowf.readthedocs.io/en/latest/) workflow specification for defining task graphs. Tasks are submitted into separate Celery queues, whose resources need to be preconfigured; its load balancing is thus not fully flexible and automatic like in HyperQueue. + +It also does not support automatic allocation and nor does it support custom resource kinds. Failed tasks can be automatically restarted if they end with a specific status code; however, if they fail because of unexpected reasons, users have to mark them for re-execution manually. Merlin requires a message broker backend, such as RabbitMQ or Redis, for its functionality, which makes its deployment non-trivial. + From 8dbce21f355d2466b4ab101dfc7b1d2ec83ef57f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Ber=C3=A1nek?= Date: Mon, 14 Oct 2024 19:16:00 +0200 Subject: [PATCH 2/2] Mention that dashboard has been disabled in 0.19.0 --- docs/cli/dashboard.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/docs/cli/dashboard.md b/docs/cli/dashboard.md index 400313fe0..93157268e 100644 --- a/docs/cli/dashboard.md +++ b/docs/cli/dashboard.md @@ -7,7 +7,11 @@ utilization of workers. The dashboard is currently in an experimental stage. Some of its features might not work properly, and important features might be missing. Please [let us know](https://github.com/It4innovations/hyperqueue/issues) if you encounter any issues with it, or if you want us to add new features to it. - + +!!! error "Dashboard disabled" + + Note that the dashboard has been temporarily disabled in HyperQueue [0.19.0](https://github.com/It4innovations/hyperqueue/releases/tag/v0.19.0) because of internal architectural changes. We plan to re-enable it in the future. + You can start the dashboard using the `hq dashboard` command: ```bash $ hq dashboard