Model
Zipf caps data-parallel speedup
A data-parallel stage runs at the speed of its largest partition.
- Keys
- distinct keys
- Harmonic number
- 1 + 1/2 + 1/3 + … + 1/K
How it behaves
One input on the horizontal axis, the others held fixed.
Data table
| Distinct keys K | Speedup ceiling |
|---|---|
| 10 | 2.88× |
| 12.6 | 3.11× |
| 15.8 | 3.34× |
| 20 | 3.57× |
| 25.1 | 3.8× |
| 31.6 | 4.03× |
| 39.8 | 4.26× |
| 50.1 | 4.49× |
| 63.1 | 4.72× |
| 79.4 | 4.95× |
| 100 | 5.18× |
| 126 | 5.41× |
| 158 | 5.64× |
| 200 | 5.87× |
| 251 | 6.1× |
| 316 | 6.33× |
| 398 | 6.56× |
| 501 | 6.79× |
| 631 | 7.02× |
| 794 | 7.25× |
| 1K | 7.48× |
| 1.26K | 7.72× |
| 1.58K | 7.95× |
| 2K | 8.18× |
| 2.51K | 8.41× |
| 3.16K | 8.64× |
| 3.98K | 8.87× |
| 5.01K | 9.1× |
| 6.31K | 9.33× |
| 7.94K | 9.56× |
| 10K | 9.79× |
| 12.6K | 10× |
| 15.8K | 10.2× |
| 20K | 10.5× |
| 25.1K | 10.7× |
| 31.6K | 10.9× |
| 39.8K | 11.2× |
| 50.1K | 11.4× |
| 63.1K | 11.6× |
| 79.4K | 11.9× |
| 100K | 12.1× |
| 126K | 12.3× |
| 158K | 12.6× |
| 200K | 12.8× |
| 251K | 13× |
| 316K | 13.2× |
| 398K | 13.5× |
| 501K | 13.7× |
| 631K | 13.9× |
| 794K | 14.2× |
| 1M | 14.4× |
| 1.26M | 14.6× |
| 1.58M | 14.9× |
| 2M | 15.1× |
| 2.51M | 15.3× |
| 3.16M | 15.5× |
| 3.98M | 15.8× |
| 5.01M | 16× |
| 6.31M | 16.2× |
| 7.94M | 16.5× |
| 10M | 16.7× |
| 12.6M | 16.9× |
| 15.8M | 17.2× |
| 20M | 17.4× |
| 25.1M | 17.6× |
| 31.6M | 17.8× |
| 39.8M | 18.1× |
| 50.1M | 18.3× |
| 63.1M | 18.5× |
| 79.4M | 18.8× |
| 100M | 19× |
| 126M | 19.2× |
| 158M | 19.5× |
| 200M | 19.7× |
| 251M | 19.9× |
| 316M | 20.1× |
| 398M | 20.4× |
| 501M | 20.6× |
| 631M | 20.8× |
| 794M | 21.1× |
| 1B | 21.3× |
Worked examples, recomputed
Every number the mechanisms quote for this relationship is recomputed from it, so none of them disagrees with it.
Where it appears
Each mechanism states it in its own names. The general symbol each name stands for is shown with it.
- Execution Engine Runtime
Once a query plan is chosen, why does the machine still sit idle, and what does each mechanism of a query runtime pay to buy that idle time back?