Skip to content

Releases: It4innovations/hyperqueue

Nightly build 2025-08-02

09 Dec 11:19
Compare
Choose a tag to compare
Pre-release

HyperQueue dev

Artifact summary:

  • hq-vdev-*: Main HyperQueue build containing the hq binary. Download this archive to
    use HyperQueue from the command line
    .
  • hyperqueue-dev-*: Wheel containing the hyperqueue package with HyperQueue Python
    bindings.

v0.23.0

10 Jul 07:21
Compare
Choose a tag to compare

HyperQueue 0.23.0

Breaking change

  • In --crash-limit value 0 is no longer allowed, use --crash-limit=unlimited.
  • The --workers-per-alloc flag of the hq alloc add command has been replaced with --max-workers-per-alloc,
    which determines the maximum number of workers to spawn in each allocation. Previously the flag caused the
    allocator to (almost) always spawn the determined number of workers per allocation, regardless of actual
    computational load.

Changes

The automatic allocator has been finally reimplemented, and is now much better:

  • It now uses information from the scheduler to determine how many allocations to spawn, and thus it can react to the
    current computational load much more accurately. It should also be less "eager".
  • It properly supports multi-node tasks.
  • It considers computational load across all allocation queues (before, each queue was treated separately, which led to
    creating too many submissions).
  • It now exposes a min-utilization parameter, which can be used to avoid spawning an allocation that couldn't be utilized
    enough.

As this is a large behavioral change, we would be happy to hear your feedback!

New features

  • New command hq task explain <job_id> <task_id> explains why a task cannot be run on a given worker.
  • The server scheduler now slightly prioritizes tasks from older jobs and finishing partially-computed task graphs
  • New values for --crash-limit:
    • never-restart - task is never restarted, even if it "crashes" on a worker that was explicitly terminated.
    • unlimited - unlimited crash limit
  • hq worker info contains more information
  • hq job forget tries to free more memory
  • You can now configure Job name in the Python API.
  • hq job progress now displays all jobs and tasks that you wait for, rather than those that were unfinished at the
    time when the command was executed.

Fixes

  • Fixed a problem with journal loading when task dependencies are used
  • Fixed restoring crash counters and instance ids from journal
  • Fixed some corner cases of load balancing in server scheduler

Docs

  • CLI documentation (when --help is used) was cleaned up and improved
  • Our documentation now contains an automatically generated reference of all available HQ CLI commands and options
  • The hq doc and hq generate-completion commands have been documented

Experimental

  • Added direct data transfers between tasks. User API not stabilized

Artifact summary:

  • hq-v0.23.0-*: Main HyperQueue build containing the hq binary. Download this archive to
    use HyperQueue from the command line
    .
  • hyperqueue-0.23.0-*: Wheel containing the hyperqueue package with HyperQueue Python
    bindings.

v0.23.0-rc1

08 Jul 13:17
Compare
Choose a tag to compare
v0.23.0-rc1 Pre-release
Pre-release

HyperQueue 0.23.0-rc1

Breaking change

  • In --crash-limit value 0 is no longer allowed, use --crash-limit=unlimited.
  • The --workers-per-alloc flag of the hq alloc add command has been replaced with --max-workers-per-alloc,
    which determines the maximum number of workers to spawn in each allocation. Previously the flag caused the
    allocator to (almost) always spawn the determined number of workers per allocation, regardless of actual
    computational load.

Changes

The automatic allocator has been finally reimplemented, and is now much better:

  • It now uses information from the scheduler to determine how many allocations to spawn, and thus it can react to the
    current computational load much more accurately. It should also be less "eager".
  • It properly supports multi-node tasks.
  • It considers computational load across all allocation queues (before, each queue was treated separately, which led to
    creating too many submissions).
  • It now exposes a min-utilization parameter, which can be used to avoid spawning an allocation that couldn't be utilized
    enough.

As this is a large behavioral change, we would be happy to hear your feedback!

New features

  • New command hq task explain <job_id> <task_id> explains why a task cannot be run on a given worker.
  • The server scheduler now slightly prioritizes tasks from older jobs and finishing partially-computed task graphs
  • New values for --crash-limit:
    • never-restart - task is never restarted, even if it "crashes" on a worker that was explicitly terminated.
    • unlimited - unlimited crash limit
  • hq worker info contains more information
  • hq job forget tries to free more memory
  • You can now configure Job name in the Python API.
  • hq job progress now displays all jobs and tasks that you wait for, rather than those that were unfinished at the
    time when the command was executed.

Fixes

  • Fixed a problem with journal loading when task dependencies are used
  • Fixed restoring crash counters and instance ids from journal
  • Fixed some corner cases of load balancing in server scheduler

Docs

  • CLI documentation (when --help is used) was cleaned up and improved
  • Our documentation now contains an automatically generated reference of all available HQ CLI commands and options
  • The hq doc and hq generate-completion commands have been documented

Experimental

  • Added direct data transfers between tasks. User API not stabilized

Artifact summary:

  • hq-v0.23.0-rc1-*: Main HyperQueue build containing the hq binary. Download this archive to
    use HyperQueue from the command line
    .
  • hyperqueue-0.23.0-rc1-*: Wheel containing the hyperqueue package with HyperQueue Python
    bindings.

v0.22.0

27 Mar 17:54
Compare
Choose a tag to compare

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

25 Mar 15:46
Compare
Choose a tag to compare
v0.22.0-rc1 Pre-release
Pre-release

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

21 Feb 16:06
Compare
Choose a tag to compare

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

16 Jan 09:01
Compare
Choose a tag to compare

HyperQueue 0.21.0

Caution

This release contains a critical bug that can sometimes randomly kill tasks. Please use v0.21.1 instead.

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

13 Jan 14:50
Compare
Choose a tag to compare
v0.21.0-rc1 Pre-release
Pre-release

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

24 Sep 09:34
Compare
Choose a tag to compare

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

  • 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 (#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

20 Sep 18:41
Compare
Choose a tag to compare
v0.20.0-rc2 Pre-release
Pre-release

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

  • 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 (#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.