ictasks


Nameictasks JSON
Version 0.1.0 PyPI version JSON
download
home_pageNone
SummaryA utility to run multiple small tasks in a single HPC job submission.
upload_time2024-10-08 09:50:45
maintainerNone
docs_urlNone
authorNone
requires_python>=3.8
licenseNone
keywords slurm hpc tasks mpi
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # `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](https://www.ichec.ie/academic/national-hpc/documentation/tutorials/task-farming) tool available on our HPC systems in the `applications` directory.

# Installing #

The package can be installed from PyPI:

``` shell
pip install ictasks
```

# Features #

## Taskfarm ##

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

``` shell
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.


``` yaml
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:

``` shell
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.






            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "ictasks",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": null,
    "keywords": "Slurm, HPC, tasks, MPI",
    "author": null,
    "author_email": "\"James Grogan, Irish Centre for High End Computing\" <james.grogan@ichec.ie>",
    "download_url": "https://files.pythonhosted.org/packages/60/36/fdcf1df747f936be201ea1f85aef7afff3b35d69ee56bae35aa1a235d55d/ictasks-0.1.0.tar.gz",
    "platform": null,
    "description": "# `ictasks`\n\nThis is a set of utilities to support running groups of small tasks as part of a single HPC batch submission at ICHEC.\n\nThe repo includes:\n\n1) the `ictasks` package with tooling building blocks\n2) Snapshots of the ICHEC [Taskfarm](https://www.ichec.ie/academic/national-hpc/documentation/tutorials/task-farming) tool available on our HPC systems in the `applications` directory.\n\n# Installing #\n\nThe package can be installed from PyPI:\n\n``` shell\npip install ictasks\n```\n\n# Features #\n\n## Taskfarm ##\n\nThe `taskfarm` feature will launch the tasks in the pointed to `tasklist` file:\n\n``` shell\nictasks taskfarm --tasklist $PATH_TO_TASKLIST\n```\n\nSee the `test/data/tasklist.dat` file for an example input with two small tasks.\n\nIf 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:\n\n1. 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\n\n2. 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.\n\n### Using a config file ###\n\nThe 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.\n\n\n``` yaml\nenvironment:\n\tjob_id: my_job\n\tworkers:\n\t\tcores_per_node: 1\n\ntasks:\n\titems:\n\t  - id: 0\n\t    launch_cmd: \"echo 'hello from task 0'\"\n\t  - id: 1\n\t    launch_cmd: \"echo 'hello from task 1'\"\n```\n\nwe can run this with:\n\n``` shell\nictasks taskfarm --config my_config.yaml\n```\n\n# License #\n\nThis 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.\n\n\n\n\n\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "A utility to run multiple small tasks in a single HPC job submission.",
    "version": "0.1.0",
    "project_urls": {
        "Homepage": "https://git.ichec.ie/performance/toolshed/ictasks",
        "Repository": "https://git.ichec.ie/performance/toolshed/ictasks"
    },
    "split_keywords": [
        "slurm",
        " hpc",
        " tasks",
        " mpi"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "90a80d1184e9d79a915832f601b03a41162c1a9ebd29d5694c5a2a979700863e",
                "md5": "a94262d4fa84fe710b0262265842f30a",
                "sha256": "ff06f8d29305714e74c63f31c82a7df7031740aced3ba64ad1b4bfac51136138"
            },
            "downloads": -1,
            "filename": "ictasks-0.1.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "a94262d4fa84fe710b0262265842f30a",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 27619,
            "upload_time": "2024-10-08T09:50:43",
            "upload_time_iso_8601": "2024-10-08T09:50:43.876111Z",
            "url": "https://files.pythonhosted.org/packages/90/a8/0d1184e9d79a915832f601b03a41162c1a9ebd29d5694c5a2a979700863e/ictasks-0.1.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "6036fdcf1df747f936be201ea1f85aef7afff3b35d69ee56bae35aa1a235d55d",
                "md5": "132b532bca27d2fe4f2abf06b9070d30",
                "sha256": "95426446573ee24be38bd90bdb37d10ed7159e786f159f124af72fc91ce70838"
            },
            "downloads": -1,
            "filename": "ictasks-0.1.0.tar.gz",
            "has_sig": false,
            "md5_digest": "132b532bca27d2fe4f2abf06b9070d30",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 24833,
            "upload_time": "2024-10-08T09:50:45",
            "upload_time_iso_8601": "2024-10-08T09:50:45.951846Z",
            "url": "https://files.pythonhosted.org/packages/60/36/fdcf1df747f936be201ea1f85aef7afff3b35d69ee56bae35aa1a235d55d/ictasks-0.1.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-10-08 09:50:45",
    "github": false,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "lcname": "ictasks"
}
        
Elapsed time: 0.39070s