Skip to main content

A utility to run multiple small tasks in a single HPC job submission.

Project description

ictasks

This is a set of utilities to support running groups of small tasks as part of a single HPC batch submission at ICHEC.

The repo includes:

  1. the ictasks package with tooling building blocks
  2. Snapshots of the ICHEC Taskfarm tool available on our HPC systems in the applications directory.

Installing

The package can be installed from PyPI:

pip install ictasks

Features

Taskfarm

The taskfarm feature will launch the tasks in the pointed to tasklist file:

ictasks taskfarm --tasklist $PATH_TO_TASKLIST

See the test/data/tasklist.dat file for an example input with two small tasks.

If you run this on your local machine it will create a directory per task, 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. There are two ways to control this, and many other, settings:

  1. With environment variables using a TASKFARM_ prefix, consistent with the original ICHEC taskfarm tool and documented here: https://www.ichec.ie/academic/national-hpc/documentation/tutorials/task-farming

  2. With a config file in yaml format - passed in with a --config command line argument. Config values take precedence over environment variables if both are specified for the same setting.

Using a config file

The config file below shows an example constraining tasks to run on only a single core per compute node. We can also specify tasks in the config instead of in a tasklist file.

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

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). See the included LICENSE.txt file for details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ictasks-0.1.1.tar.gz (24.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ictasks-0.1.1-py3-none-any.whl (27.6 kB view details)

Uploaded Python 3

File details

Details for the file ictasks-0.1.1.tar.gz.

File metadata

  • Download URL: ictasks-0.1.1.tar.gz
  • Upload date:
  • Size: 24.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.13.0

File hashes

Hashes for ictasks-0.1.1.tar.gz
Algorithm Hash digest
SHA256 5fef85d66cd7dc70bc97cffb2731274fd6a0ccc5a93b5bd73956b3ef27faeb27
MD5 c746a9dadbb555a60d0e0b1fd6f6de7c
BLAKE2b-256 70d50a0841db5e1bfda6a439db72d01ff4fa8faeb94d20963e2c3b4d7cb487de

See more details on using hashes here.

File details

Details for the file ictasks-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: ictasks-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 27.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.13.0

File hashes

Hashes for ictasks-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 fd5e78796afa8852502bca9458afb2a724295f4d95723a77850abda643a5d7d9
MD5 43000cf66fb01d9a9323edb466d50f21
BLAKE2b-256 66493fed726c877f7805fb39aab9c7fe48a6294695c56cdf98ef44df92d1fe79

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page