ITADN
It4innovations/hyperqueue

版本发布 8

v0.24.0
? · 2025-09-09

# HyperQueue 0.24.0 ## Breaking changes * The `--no-detect-resources` flag of the `hq worker start` command has been removed. You can now configure automatically detected resources in a granular way using the new `--detect-resources` flag (see below). `--no-detect-resources` corresponds to `--detect-resources=none`. ## New features * New policy `tight` (and `tight!`) that is the original implementation of `compact`. It selects minimal number of resources groups and then tries to get maximum resources from a biggest group and then maximum resources from the second biggest group, etc. The policy `compact` now behaves as is described in the section "Changes". * Resource policy `compact!` is now allowed to take fractional resource request. * New command `hq alloc cat <alloc-id> <stdout/stderr>`, which can be used to debug the output of allocations submitted by the automatic allocator. * New command `hq server wait` that repeatedly tries to connect to a server with a configurable timeout. This is useful for deployment scripts that need to wait for server availability. * New `hq alloc add` parameter called `--wrap-worker-cmd`. It can be used to start workers on allocated nodes using some wrapping mechanism (e.g. Podman). * New flag `--detect-resources` for `hq worker start`. It can be used to configure which worker resources will be automatically detected. You can e.g. say `--detect-resources=cpus,gpus/nvidia`. See [documentation](https://it4innovations.github.io/hyperqueue/latest/jobs/resources) for more information. * The scheduler has better compacting behavior when there are small number of tasks and workers appearing/disappering * Autoallocator keeps log file when probing allocation fails. * Unstable: Resource "coupling". You may specify that some resources are coupled, e.g. cpus and gpus. That means that cpus are gpus are organized in numa nodes, and allocation strategy will respect that, i.e., it tries to find cpus and gpus from the same numa nodes. Note: The current implementation does not detect coupling automatically, you have to specify it manually. ## Changes * Allocation policy `compact` was updated. It still tries to find the minimal number of the resource groups, but when they are found, resources are evenly taken from the selected groups. In rare cases when you need original behavior, use new policy `tight`. It is not a breaking change, because the `compact` previously did not specified how exactly will be resources taken from groups. * Worker process terminated because of idle timeout now returns zero exit code. ## Fixes * Fixed the issue of possible ignoring idle timeout when time request is used. * Fixes broken streaming when job file is used. * Fixed missing fields in export of journal into JSON # Artifact summary: - **hq-v0.24.0-\***: Main HyperQueue build containing the `hq` binary. **Download this archive to use HyperQueue from the command line**. - **hyperqueue-0.24.0-\***: Wheel containing the `hyperqueue` package with HyperQueue Python bindings.

v0.22.0
? · 2025-03-27

# HyperQueue 0.22.0 ## New features * Added `hq worker deploy-ssh` to deploy workers to a set of nodes using SSH. * Added `hq doc` command for accessing documentation about various HQ features from the command-line. * `hq journal replay` added. It similar to `hq journal stream` but it will not wait for new events. * More robust initialization of dashboard * Authentication and encryption of client/worker connection can be disabled. It is mostly for testing and benchmarking purpose. Do not use if you are not in 100% safe environment. ## Breaking change * The Python API now requires Python 3.9, up from Python 3.6. ## Fixes * Fixes #848, inefficient scheduling of tasks with priorities * HyperQueue will no longer allocate extreme amounts of memory when loading a corrupted journal # Artifact summary: - **hq-v0.22.0-\***: Main HyperQueue build containing the `hq` binary. **Download this archive to use HyperQueue from the command line**. - **hyperqueue-0.22.0-\***: Wheel containing the `hyperqueue` package with HyperQueue Python bindings.

v0.22.0-rc1预发布
? · 2025-03-25

# HyperQueue 0.22.0-rc1 ## New features * Added `hq worker deploy-ssh` to deploy workers to a set of nodes using SSH. * Added `hq doc` command for accessing documentation about various HQ features from the command-line. * `hq journal replay` added. It similar to `hq journal stream` but it will not wait for new events. * More robust initialization of dashboard * Authentication and encryption of client/worker connection can be disabled. It is mostly for testing and benchmarking purpose. Do not use if you are not in 100% safe environment. ## Breaking change * The Python API now requires Python 3.9, up from Python 3.6. ## Fixes * Fixes #848, inefficient scheduling of tasks with priorities * HyperQueue will no longer allocate extreme amounts of memory when loading a corrupted journal # Artifact summary: - **hq-v0.22.0-rc1-\***: Main HyperQueue build containing the `hq` binary. **Download this archive to use HyperQueue from the command line**. - **hyperqueue-0.22.0-rc1-\***: Wheel containing the `hyperqueue` package with HyperQueue Python bindings.

v0.21.1
? · 2025-02-21

# HyperQueue 0.21.1 ## Fixes * Fixes random task crashes. Details in #823. # Artifact summary: - **hq-v0.21.1-\***: Main HyperQueue build containing the `hq` binary. **Download this archive to use HyperQueue from the command line**. - **hyperqueue-0.21.1-\***: Wheel containing the `hyperqueue` package with HyperQueue Python bindings.

v0.21.0
? · 2025-01-16

# HyperQueue 0.21.0 ## Breaking change * Pre-built HyperQueue releases available from our GitHub repository are now built with GLIBC `2.28`, instead of `2.17`. If you need to run HyperQueue on a system with an older GLIBC version, you might need to recompile it from source on your system. If you encounter any issues, please let us know. ## Changes * `hq event-log` command renamed to `hq journal` * `hq dashboard` has been re-enabled by default. ## New features * Added `hq journal prune` for pruning journal file. * Added `hq journal flush` for forcing server to flush the journal. # Artifact summary: - **hq-v0.21.0-\***: Main HyperQueue build containing the `hq` binary. **Download this archive to use HyperQueue from the command line**. - **hyperqueue-0.21.0-\***: Wheel containing the `hyperqueue` package with HyperQueue Python bindings.

v0.21.0-rc1预发布
? · 2025-01-13

# HyperQueue 0.21.0-rc1 ## Breaking change * Pre-built HyperQueue releases available from our GitHub repository are now built with GLIBC `2.28`, instead of `2.17`. If you need to run HyperQueue on a system with an older GLIBC version, you might need to recompile it from source on your system. If you encounter any issues, please let us know. ## Changes * `hq event-log` command renamed to `hq journal` * `hq dashboard` has been re-enabled by default. ## New features * Added `hq journal prune` for pruning journal file. * Added `hq journal flush` for forcing server to flush the journal. # Artifact summary: - **hq-v0.21.0-rc1-\***: Main HyperQueue build containing the `hq` binary. **Download this archive to use HyperQueue from the command line**. - **hyperqueue-0.21.0-rc1-\***: Wheel containing the `hyperqueue` package with HyperQueue Python bindings.

v0.20.0
? · 2024-09-24

# HyperQueue 0.20.0 ## New features * It is now possible to dynamically submit new tasks into an existing job (we call this concept "Open jobs"). See [Open jobs documentation](https://it4innovations.github.io/hyperqueue/stable/jobs/openjobs/) * Worker streaming. Before, you could stream task stderr/stdout to the server over the network using the `--log` parameter of `hq submit`. This approach had various issues and was not scalable. Therefore, we have replaced this functionality with worker streaming, where the streaming of task output to a set of files on disk is performed by workers instead. This new streaming approach creates more files than original solution (where it was always one file per job), but the number of files stays small and independent on the number of executed tasks. The new architecture also allows parallel I/O writing and storing of multiple job streams in one stream handle. You can use worker streaming using the `--stream` parameter of `hq submit`. Check out the documentation for more information. * Optimization of journal size * Tasks' crash counters are not increased when worker is stopped by `hq worker stop` or by time limit. ## Removed * Because worker streaming fully replaces original streaming, the original server streaming was removed. For most cases, you can rename `--log` to `--stream` and `hq log` to `hq output-log`. See the docs for more details. ## Fixes * HQ should no longer crash while printing job info when a failed task does not have any workers attached (https://github.com/It4innovations/hyperqueue/issues/731). ## Note * Dashboard still not enabled in this version # Artifact summary: - **hq-v0.20.0-\***: Main HyperQueue build containing the `hq` binary. **Download this archive to use HyperQueue from the command line**. - **hyperqueue-0.20.0-\***: Wheel containing the `hyperqueue` package with HyperQueue Python bindings.

v0.20.0-rc2预发布
? · 2024-09-20

# HyperQueue 0.20.0-rc2 ## New features * It is now possible to dynamically submit new tasks into an existing job (we call this concept "Open jobs"). See [Open jobs documentation](https://it4innovations.github.io/hyperqueue/stable/jobs/openjobs/) * Worker streaming. Before, you could stream task stderr/stdout to the server over the network using the `--log` parameter of `hq submit`. This approach had various issues and was not scalable. Therefore, we have replaced this functionality with worker streaming, where the streaming of task output to a set of files on disk is performed by workers instead. This new streaming approach creates more files than original solution (where it was always one file per job), but the number of files stays small and independent on the number of executed tasks. The new architecture also allows parallel I/O writing and storing of multiple job streams in one stream handle. You can use worker streaming using the `--stream` parameter of `hq submit`. Check out the documentation for more information. * Optimization of journal size * Tasks' crash counters are not increased when worker is stopped by `hq worker stop` or by time limit. ## Removed * Because worker streaming fully replaces original streaming, the original server streaming was removed. For most cases, you can rename `--log` to `--stream` and `hq log` to `hq output-log`. See the docs for more details. ## Fixes * HQ should no longer crash while printing job info when a failed task does not have any workers attached (https://github.com/It4innovations/hyperqueue/issues/731). ## Note * Dashboard still not enabled in this version # Artifact summary: - **hq-v0.20.0-rc2-\***: Main HyperQueue build containing the `hq` binary. **Download this archive to use HyperQueue from the command line**. - **hyperqueue-0.20.0-rc2-\***: Wheel containing the `hyperqueue` package with HyperQueue Python bindings.