-
Notifications
You must be signed in to change notification settings - Fork 2
docs: Feature/paypertask #87
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
c74d3aa
2d24c30
c1a0e32
a6c18fb
57d2308
fe0d4b0
47da5a0
9cdc2a3
0fd9fa9
344f89d
65ed9d8
865e87a
5d52e50
c3798f0
1a93248
3abab67
aef3209
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -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 | ||
|
Check warning on line 6 in src/protocol/pay-per-task.md
|
||
|
|
||
| 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 | ||
|
Check warning on line 12 in src/protocol/pay-per-task.md
|
||
| two limits: | ||
|
|
||
| - Maximum Computing Time (C): per-task execution time on the worker. If the task | ||
|
Check notice on line 15 in src/protocol/pay-per-task.md
|
||
| 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 | ||
|
Check notice on line 17 in src/protocol/pay-per-task.md
|
||
| 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 | | ||
|
Check failure on line 26 in src/protocol/pay-per-task.md
|
||
| | 2 – M | 1 hour | 10 hours | | ||
|
Check failure on line 27 in src/protocol/pay-per-task.md
|
||
| | 3 – L | 3 hours | 30 hours | | ||
|
Check failure on line 28 in src/protocol/pay-per-task.md
|
||
| | 4 – XL | 10 hours | 100 hours | | ||
|
Check failure on line 29 in src/protocol/pay-per-task.md
|
||
|
|
||
| - 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. | ||
|
Check failure on line 32 in src/protocol/pay-per-task.md
|
||
|
|
||
| ## 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 | | ||
|
Check failure on line 41 in src/protocol/pay-per-task.md
|
||
| | Heavy ML inference / long simulations | Cat 3–4 | | ||
|
|
||
| Use the iExec SDK to **set the category** in app, request, or workerpool | ||
|
Check failure on line 44 in src/protocol/pay-per-task.md
|
||
| 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 | ||
|
Check warning on line 51 in src/protocol/pay-per-task.md
|
||
| you pick the right setup. ::: | ||
Uh oh!
There was an error while loading. Please reload this page.