A utility to run multiple small tasks in a single HPC job submission.
Project description
ictasks
ictasks is a library to support running collections of small tasks in parallel, from a laptop through to a HPC cluster.
It is being developed to support projects and workflow standarisation at the Irish Centre for High End Computing (ICHEC).
There are many libraries like this, this one focuses on:
- being small and simple - easy for ICHEC researchers to understand all elements of it
- having low dependencies - can be installed with
pip - having an easy to use configuration format with
yaml - having verbose and structured reporting of task related metadata for analysis
Features
The library allows a few different ways to specify tasks.
- As a Python package
You can create a collection of Task instances and launch them with the session.run() function.
- Using a
tasklist.datfile and the command line interface (CLI):
ictasks taskfarm --tasklist $PATH_TO_TASKLIST
See the test/data/tasklist.dat file for an example input with two small tasks.
- Using a
yamlconfig file, giving task and environment info.
environment:
job_id: my_job
workers:
cores_per_node: 1
tasks:
items:
- id: 0
launch_cmd: "echo 'hello from task 0'"
- id: 1
launch_cmd: "echo 'hello from task 1'"
we can run this with:
ictasks taskfarm --config my_config.yaml
Launching the run will launch the task in that directory and output a status file task.json. By default all processors on the machine (or compute node) will be assigned tasks.
Installing
The package can be installed from PyPI:
pip install ictasks
Contact
Our Gitlab hosting arrangement doesn't allow us to easily accept external contributions or feedback, however they are still welcome.
In future if there is interest
If you have any feedback on this library
License
This package is Coypright of the Irish Centre for High End Computing. It can be used under the terms of the GNU Public License (GPL v3+). See the included LICENSE.txt file for details.
If you are an ICHEC collaborator or user of the National Service different licensing terms can be offered - please get in touch to discuss.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file ictasks-0.1.2.tar.gz.
File metadata
- Download URL: ictasks-0.1.2.tar.gz
- Upload date:
- Size: 26.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.0.1 CPython/3.13.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
84cef5cce94229f04a404d92ff5557547150db61aa1618d0934314d73d853ca3
|
|
| MD5 |
585dcff782a76e1292d49f5011372526
|
|
| BLAKE2b-256 |
f4026e49ec806dfbcf9f1018d7a054e76fd17ad8840f75c3206b0979b3244038
|
File details
Details for the file ictasks-0.1.2-py3-none-any.whl.
File metadata
- Download URL: ictasks-0.1.2-py3-none-any.whl
- Upload date:
- Size: 29.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.0.1 CPython/3.13.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d683b4d383b239a2bfd0c541a73695d2cf102e03d1b0ac5e299d018b75c3a800
|
|
| MD5 |
776e94fb3c2d96a282ec0e0e9d3d1b06
|
|
| BLAKE2b-256 |
777d5e3d36f2bb7233a4580c46b5b3ff4ea6e8a1ad24e36f2f660eaf98c408ef
|