An open API service indexing awesome lists of open source software.

https://github.com/fkcptlst/labtasker

Experiment task scheduling made easy.
https://github.com/fkcptlst/labtasker

machine-learning mongodb-database python3 task-manager task-queue task-scheduler workflow-automation

Last synced: 3 months ago
JSON representation

Experiment task scheduling made easy.

Awesome Lists containing this project

README

        

Make your ML experiment wrapper scripts smarter with...


Labtasker


Install โ€ข Tutorial / Demo โ€ข Documentation โ€ข FAQs โ€ข Releases


unit-test-matrix
codecov
Python version
PyPI

** ๐ŸŒŸ Labtasker makes ML experiment wrapper scripts smarter with task prioritization,
failure handling, halfway resume and more: just change 1 line of code.
**

If you like our project, please give us a star โญ on GitHub for latest update.

## โœจ When and Where to Use

**TLDR**: Replace `for` loops in your experiment *wrapper script* with labtasker to enable features like experiment
parallelization, dynamic task prioritization, failure handling, halfway resume, and more.

![comparison](docs/docs/assets/comparison.png)

๐Ÿณ For detailed examples and concepts, check out the [documentation](https://fkcptlst.github.io/labtasker/).

## ๐Ÿงช๏ธ A Quick Demo

This demo shows how to easily submit task arguments and run jobs in parallel.

It also features an event listener to monitor task execution in real-time and automate workflows,
such as sending emails on task failure.

![demo](docs/docs/assets/gifs/demo.gif)

For more detailed steps, please refer to the content in the [Tutorial / Demo](https://fkcptlst.github.io/labtasker/latest/guide/basic/).

## โšก๏ธ Features

- โš™๏ธ Easy configuration and setup.
- ๐Ÿงฉ Versatile and minimalistic design.
- ๐Ÿ”„ Supports both CLI and Python API for task scheduling.
- ๐Ÿ”Œ Customizable plugin system.

## ๐Ÿ”ฎ Supercharge Your ML Experiments with Labtasker

- โšก๏ธ **Effortless Parallelization:** Distribute tasks across multiple GPU workers with just a few lines of code.
- ๐Ÿ›ก๏ธ **Intelligent Failure Management:** Automatically capture exceptions, retry failed tasks, and maintain detailed error logs.
- ๐Ÿ”„ **Seamless Recovery:** Resume failed experiments with a single command - no more scavenging through logs or directories.
- ๐ŸŽฏ **Real-time Prioritization:** Changed your mind about experiment settings? Instantly cancel, add, or reschedule tasks without disrupting existing ones.
- ๐Ÿค– **Workflow Automation:** Set up smart event triggers for email notifications or task workflow based on FSM transition events.
- ๐Ÿ“Š **Streamlined Logging:** All stdout/stderr automatically organized in `.labtasker/logs` - zero configuration required.
- ๐Ÿงฉ **Extensible Plugin System:** Create custom command combinations or leverage community plugins to extend functionality.

## ๐Ÿ› ๏ธ Installation

> [!NOTE]
> You need a running Labtasker server to use the client tools.
> Simply use the installed Python CLI `labtasker-server serve` or use docker-compose to deploy the server.
> See [deployment instructions](https://fkcptlst.github.io/labtasker/latest/install/deployment/).

### 1. Install via PyPI

```bash
pip install labtasker
```

### 2. Install the Latest Version from GitHub

```bash
pip install git+https://github.com/fkcptlst/labtasker.git
```

## ๐Ÿš€ Quick Start

Use the following command to launch a labtasker server in the background:

```bash
labtasker-server serve &
```

Use the following command to quickly setup a labtasker queue for your project:

```bash
labtasker init
```

Then, use `labtasker submit` to submit tasks and use `labtasker loop` to run tasks across any number of workers.

## ๐Ÿ“š Documentation

For detailed information on demo, tutorial, deployment, usage, please refer to
the [documentation](https://fkcptlst.github.io/labtasker/).

## ๐Ÿ”’ License

See [LICENSE](LICENSE) for details.