Tasks

This is a Core Concept page which offers an overview of key topics essential for understanding Tasks. Start here for foundational knowledge, then explore our guides and tutorials for more in-depth learning.

A task describes a computation to perform on compute nodes. It is defined by its profile (the software and associated configuration) and constant.
You can use Task to perform

For more information on Tasks please read our How to section and Tutorials

Glossary

Fundamental Principles

Explain the basic principles or paradigms that underpin how the product works.

Billing

You are billed for the task execution duration which is the time during which your task is being processed on each executing node.
Parameters taken into account are:

Scheduling type / Pricing plan, between

Hardware used

When you don't specify hardware requirements (like GPU, CPU, or RAM), Qarnot automatically selects the best available hardware to run your task. The pricing is designed so that the cost remains balanced, regardless of the hardware. This means that if your task runs on a more powerful (and usually more expensive) machine, it will complete faster but cost about the same as it would on a slower, less expensive machine that takes longer to finish the task. This way, the price-to-performance ratio stays consistent, ensuring fair billing no matter which hardware is used.

Actions

The action you can perform on tasks are:

Core Components

When creating a task you can use several parameters to configure

Main Information

These are the minimum parameters you need to use when creating a task

For more information on profile please read Core Concepts > Profile documentation

Task Status

You can get several useful data from your Task using the UI or the API.
11 States are used to describe a Task State:

For each state you can get key metrics or additional information to help you keep track of your computation or analyse its performance

All metrics are available in TasQ GUi as well as using the API, SDK and CLI.

Scaling Parameters

Scaling is a key factor in parallel computing to speed up your computing.
Each instance is informed of its ID (Number of the task) by the ${INSTANCE_ID} environment variable and sends its log with its ID as prefix.
For more information see “Launching multiple instances”.

Storage parameters

For more information see our storage article

You can attach files to your task, when computing, they are mounted to your task server in a Network file system.
The output of your computation is then uploaded to the Result Bucket and you can choose to filter the files to be exported using whitelist and blacklist parameters.

Snapshot

A snapshot is a capture of the temporary results of a task. It is especially important for Multi Physics simulations or machine learning where tasks processing can be long drawn out and intermediate results can help understand if the solution will converge.
You can choose to perform a single or periodic snapshots of your tasks (using the API, SDKs or the UI). The snapshot parameters can be defined at the task creation or overridden when running the snapshot command. These parameters enable you to select the snapshot files to be exported to your snapshot bucket or a sub folder. You can also choose to export all results files by leaving these parameters empty.

Billing and reporting

Qarnot bills you based on the duration of your task and the hardware it uses. Costs vary depending on the type of hardware (such as CPUs or GPUs) and the pricing plan or scheduling option you select. For instance, some plans offer lower rates if you're flexible with scheduling, while others prioritize faster execution at a higher cost. For more details, please refer to our pricing page.

Cancellation and completion

You can choose how your task behaves when it completes or fails. It can be retry parameters, history management (what happens when you’ve reached your task quota).

Execution environment

Even if a lot of environment parameters are determined by the profile you can still customise your task execution environment by choosing constants (exposed as environment variables), hardware constraints (for example CPUs or RAM max).

Secret Management

You can choose to protect sensitive data passed to your execution environment. To do so you need to prefix your constant with QARNOT_SECRET_, this will create a read only constant that is only readable by your task. If you need to use the environment variable in your task you will need to call QARNOT_SECRET_YOUR_VARIABLE. If you don’t want to or need to use YOUR_VARIABLE you can declare in your constant YOUR_VARIABLE:${QARNOT_SECRET_YOUR_VARIABLE}.

Pools

You can choose to execute your task in a pool to speed-up task start up (see pool more information).

Jobs

You can choose to execute your task in jobs to execute tasks with dependencies with each other (see pool and jobs for more information).

Related Articles

Fore more information on how to use our platform, please take a look at our guides, tutorial, and documentation article: