3. Plan your Pareto curve¶
Produces: the list of concurrency levels you'll run, checked as valid before you spend any accelerator time.
Before you begin
- Completed 2. Install the tools
- You know roughly the highest concurrency your system serves usefully
Do this before you run anything
Region boundaries are calculated from your own minimum and maximum concurrency, so which concurrency levels count as valid depends on a number you pick. Running your points first and computing regions afterwards is the most common way to discover you have missed a required region.
What you'll do¶
- Choose
C_max, your Maximum Supported Concurrency - Compute your region boundaries with the checker's
regionscommand - Pick at least 7 concurrency levels that satisfy the
1 + 3 + 3coverage rule - Decide how you'll meet the Offline requirement: a dedicated run, or electing your
C_maxpoint - Sanity-check the count against the 32-point cap
The coverage rule¶
A non-agentic submission needs at least 8 and at most 32 measurement points, structured 1 + 3 + 3 +
1. The minimum is 7 if you elect your C_max point as the Offline result, or if the benchmark is
agentic. Where each point has to go, and the freedom you have in placing the rest, is in §5.3 of
the rules. The cap is in §5.6, and the Offline point counts toward it.
Steps¶
1. Choose C_max¶
C_max is the highest concurrency you choose to benchmark. It sets the top of the High Concurrency
region, so it's the extent of your published curve. It must be greater than 32. Beyond that the
choice is yours; the rules explain what to weigh under Maximum Supported Concurrency in
§5.4.
C_max ≤ 33 needs working-group approval
At that point all three concurrency regions collapse to roughly one level each. You must notify the working group with written justification, and they may request more information before accepting the submission. See Boundary Edge Cases under Concurrency Regions in §5.4.
2. Understand what sets C_min¶
The Ultra Low Concurrency region is fixed at 1–32 for everyone. C_min, the
value the region calculation uses, is the lowest concurrency level in your own submission, and has
to fall in 1–32.
Derived, not declared
In v1.0 the checker derives C_min from your submitted points. Practical consequence: your
lowest point silently changes every other region boundary. If you later drop your lowest point,
the boundaries move and points that were legal may no longer be. Decide your lowest point early
and keep it.
3. Compute the boundaries¶
Beyond Ultra Low Concurrency, the space up to C_max is divided into three equal regions in log-2
space. The reference algorithm is in §5.5 of the rules. To calculate it easily, use the
tool:
python -c "from submission_checker.cli import main; main()" regions --max-concurrency 1024 --min-concurrency 16
For C_min = 16, C_max = 1024:
| Region | Range |
|---|---|
Low Latency (1 to C_min) |
1 – 16 |
| Low Concurrency | 17 – 26 |
| Medium Concurrency | 27 – 117 |
| High Concurrency | 118 – 1024 |
Margin (10% above C_max) |
1025 – 1127 |
The tool labels the band up to C_min "Low Latency". The Ultra Low Concurrency region itself stays
1–32 for everyone.
Pre-computed boundaries for common combinations are in Appendix B of the rules.
The rules' Example C is off by one
§5.4's worked example for this same pair gives Medium as 27–116 and High as 117–1,024. That's an arithmetic slip in the example. The algorithm, Appendix B and the checker all put 117 in Medium. Trust the tool. Tracked as B14 in Open questions.
4. Choose your points¶
The rules give a worked 7-point set for three system sizes, under Concurrency Regions in
§5.4. Use them as a starting shape, with two caveats. They predate the
Offline point, so add a dedicated Offline run on top or elect the C_max point. And the large-scale
and mid-range sets stop short of their C_max, which is fine for region coverage but causes trouble
when you decide how to meet the Offline
requirement.
5. Note the 10% margin¶
The High Concurrency region carries a 10% margin above C_max, extending the valid upper bound
to ceil(1.10 × C_max) (Concurrency Regions in §5.4).
The margin does not satisfy coverage
A point in the margin is valid, but the margin is its own region. It does not count as your required High Concurrency point. The margin also no longer serves its original purpose: it existed to allow adding points after submission, and that window has been removed. See step 8.
6. Decide how to meet the Offline requirement¶
Skip this step if your benchmark is agentic.
For every other benchmark you need one Offline result. §5.7.2 of the rules gives two
ways to supply it: a dedicated Offline run, or electing your C_max point as the Offline
result.
Verify¶
Write your planned levels down and name the region each one falls in, using the boundaries you computed above. Then check the plan against the minimum submission requirements in §5.3 of the rules and the point-count, region-coverage and Offline checks in §9.1.
Budget a spare
Withdrawn points do not count toward the minimum, and the shortfall cannot be repaired by adding a replacement point later. Planning one or two points more than the minimum buys you the ability to lose one during review without losing the submission.