Releases: It4innovations/hyperqueue
Nightly build 2025-06-03
HyperQueue dev
Breaking change
- In
--crash-limit
value 0 is no longer allowed, use--crash-limit=unlimited
.
New features
- 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 informationhq 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
Experimental
- Added direct data transfers between tasks. User API not stabilized
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.22.0
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 tohq 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
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 tohq 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
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
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 of2.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 tohq 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
HyperQueue 0.21.0-rc1
Breaking change
- Pre-built HyperQueue releases available from our GitHub repository are now built with GLIBC
2.28
, instead of2.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 tohq 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
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 ofhq 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 ofhq 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
andhq log
tohq 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
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 ofhq 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 ofhq 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
andhq log
tohq 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.
v0.19.0
HyperQueue 0.19.0
New features
-
Server resilience. Server state can be loaded back from a journal when it crashes. This will restore the state of submitted jobs and also autoallocator queues. Find out more here.
-
HQ_NUM_NODES
for multi-node tasks introduced. It contains the number of nodes assigned to task.
You do not need to manually count lines inHQ_NODE_FILE
anymore.
Changes
-
Dashboard is disabled in this version. We expect to reneeble it in 1-2 release cycles
-
Node file generated for multi-node tasks now contains only short hostnames
(e.g. if hostname is "cn690.karolina.it4i.cz", only "cn690" is written into node list)
You can readHQ_HOST_FILE
if you need to get full hostnames without stripping.
Fixes
- Enable passing of empty
stdout
/stderr
to Python function tasks in the Python
API (#691). hq alloc add --name <name>
will now correctly use the passed<name>
to name allocations submitted to Slurm/PBS.
Artifact summary:
- hq-v0.19.0-*: Main HyperQueue build containing the
hq
binary. Download this archive to
use HyperQueue from the command line. - hyperqueue-0.19.0-*: Wheel containing the
hyperqueue
package with HyperQueue Python
bindings.
v0.19.0-rc1
HyperQueue 0.19.0-rc1
New features
-
Server resilience. Server state can be loaded back from journal when server crashes.
-
HQ_NUM_NODES
for multi-node tasks introduced. It contains the number of nodes assigned to task.
You do not need to manually count lines inHQ_NODE_FILE
anymore.
Changes
-
Dashboard is disabled in this version. We expect to reneeble it in 1-2 release cycles
-
Node file generated for multi-node tasks now contains only short hostnames
(e.g. if hostname is "cn690.karolina.it4i.cz", only "cn690" is written into node list)
You can readHQ_HOST_FILE
if you need to get full hostnames without stripping.
Fixes
- Enable passing of empty
stdout
/stderr
to Python function tasks in the Python
API (#691). hq alloc add --name <name>
will now correctly use the passed<name>
to name allocations submitted to Slurm/PBS.
Artifact summary:
- hq-v0.19.0-rc1-*: Main HyperQueue build containing the
hq
binary. Download this archive to
use HyperQueue from the command line. - hyperqueue-0.19.0-rc1-*: Wheel containing the
hyperqueue
package with HyperQueue Python
bindings.