diff --git a/src/protocol/pay-per-task.md b/src/protocol/pay-per-task.md index 1834fa34..43c92724 100644 --- a/src/protocol/pay-per-task.md +++ b/src/protocol/pay-per-task.md @@ -1,34 +1,52 @@ --- title: Pay Per Task Model -description: - Pricing model and task categories for iExec protocol, including computing and - deal time limits. +description: Pay-per-task categories, time limits, and claim rules.. --- -# Pay per task model +# Task size: pay-per-task -We are introducing a new method for pricing and we have defined several task -categories that describe the execution boundaries. We'll setup a test -infrastructure so that application developers can evaluate the category of their -submissions. Conversely, worker pools will be able to benchmark their -infrastructures against the reference machine. +Pay-per-task categories, time limits, and claim rules. -In the future, we'll redefine the categories, and provide more advanced tools -for helping developers to maximize the usage of the infrastructure +## Pay-per-task model + +We base the pay-per-task model on task size categories. Each category defines +two limits: + +- Maximum Computing Time (C): per-task execution time on the worker. If the task + exceeds C, the worker stops the task and marks it as failed. +- Maximum Deal Time (D): overall time window for a task in the deal. If the task + isn’t completed within D, the requester can claim the task. On claim, the + requester can recover the RLC engaged for this task. **Categories Description:** | **Category** | **Maximum Computing Time (C)** | **Maximum Deal Time (D)** | | ------------ | ------------------------------ | ------------------------- | | 0 – XS | 5 min | 50 min | -| 1 – S | 20 min | 200 min (3h20m) | -| 2 – M | 1 hour | 10h | -| 3 – L | 3 hour | 30h (1d6h) | -| 4 – XL | 10 hour | 100h (4d4h) | - -- Each worker will allocate **C** minutes to compute the application. If the - computation is not completed within this **Maximum Computing Time**, the - running application will be stopped. -- From a buyer perspective, a requester will be able to claim a task of a deal - after **D** minutes if the task is not completed within the **Maximum Deal - Time**. +| 1 – S | 20 min | 200 min | +| 2 – M | 1 hour | 10 hours | +| 3 – L | 3 hours | 30 hours | +| 4 – XL | 10 hours | 100 hours | + +- Worker allocates up to C per task. Beyond C, the worker stops the task. +- Requesters can claim the task after D if the task isn’t completed. + +## How to pick a category: quick guide + +Use this decision table to choose a safe category for your workload. + +| **Typical workload** | **Suggested category** | +| ------------------------------------- | ---------------------- | +| Short scripts / small data processing | Cat 0–1 | +| Medium data processing / 10-15min | Cat 2 | +| Heavy ML inference / long simulations | Cat 3–4 | + +Use the iExec SDK to **set the category** in app, request, or workerpool +orders. +For commands and examples, see the +[iExec SDK Github repository](https://github.com/iExecBlockchainComputing/iexec-sdk/blob/master/docs/README.md). + +::: info Need help Can’t find an order that fits your needs or unsure which +category to choose? +[Contact us on Discord](https://discord.com/invite/pbt9m98wnU) and we will help +you pick the right setup. :::