Updated docs on benchmarks
This commit is contained in:
1 parent
f8a47d0126
commit
db14a02df4
3 files changed
+61
-56
No files matched your search
+35
-32
@@ -1,17 +1,17 @@
|
||||
# Vern7 Performance Benchmark Report
|
||||
|
||||
**Date**: 2025-10-24
|
||||
**Test System**: Linux 6.17.4-arch2-1
|
||||
**Date**: 2026-09-29 (re-measured; first run 2025-10-24)
|
||||
**Test System**: Linux 7.2.6-arch2-1
|
||||
**Optimization Level**: Release build with full optimizations
|
||||
|
||||
## Executive Summary
|
||||
|
||||
Vern7 demonstrates **substantial performance advantages** over lower-order methods (BS3 and DP5) at tight tolerances (1e-8 to 1e-12), achieving:
|
||||
- **2.7x faster** than DP5 at 1e-10 tolerance (exponential problem)
|
||||
- **3.8x faster** than DP5 in harmonic oscillator
|
||||
- **8.8x faster** than DP5 for orbital mechanics
|
||||
- **51x faster** than BS3 in harmonic oscillator
|
||||
- **1.65x faster** than DP5 for interpolation workloads
|
||||
- **2.9x faster** than DP5 at 1e-10 tolerance (exponential problem)
|
||||
- **4.5x faster** than DP5 in harmonic oscillator
|
||||
- **9.9x faster** than DP5 for orbital mechanics
|
||||
- **83x faster** than BS3 in harmonic oscillator
|
||||
- **2.1x faster** than DP5 for interpolation workloads
|
||||
|
||||
These results confirm Vern7's design goal: **maximum efficiency for high-accuracy requirements**.
|
||||
|
||||
@@ -23,14 +23,14 @@ These results confirm Vern7's design goal: **maximum efficiency for high-accurac
|
||||
|
||||
| Method | Time (μs) | Relative Speed | Speedup vs BS3 |
|
||||
|--------|-----------|----------------|----------------|
|
||||
| **Vern7** | **3.81** | **1.00x** (baseline) | **51.8x** |
|
||||
| DP5 | 10.43 | 2.74x slower | 18.9x |
|
||||
| BS3 | 197.37 | 51.8x slower | 1.0x |
|
||||
| **Vern7** | **2.93** | **1.00x** (baseline) | **53.4x** |
|
||||
| DP5 | 8.36 | 2.85x slower | 18.7x |
|
||||
| BS3 | 156.63 | 53.4x slower | 1.0x |
|
||||
|
||||
**Analysis**:
|
||||
- Vern7 is **2.7x faster** than DP5 and **51x faster** than BS3
|
||||
- Vern7 is **2.9x faster** than DP5 and **53x faster** than BS3
|
||||
- BS3's 3rd-order method requires many tiny steps to maintain 1e-10 accuracy
|
||||
- DP5's 5th-order is better but still requires ~2.7x more work than Vern7
|
||||
- DP5's 5th-order is better but still requires ~2.9x more work than Vern7
|
||||
- Vern7's 7th-order allows much larger step sizes while maintaining accuracy
|
||||
|
||||
---
|
||||
@@ -41,15 +41,15 @@ These results confirm Vern7's design goal: **maximum efficiency for high-accurac
|
||||
|
||||
| Method | Time (μs) | Relative Speed | Speedup vs BS3 |
|
||||
|--------|-----------|----------------|----------------|
|
||||
| **Vern7** | **26.89** | **1.00x** (baseline) | **55.1x** |
|
||||
| DP5 | 102.74 | 3.82x slower | 14.4x |
|
||||
| BS3 | 1,481.4 | 55.1x slower | 1.0x |
|
||||
| **Vern7** | **19.27** | **1.00x** (baseline) | **82.9x** |
|
||||
| DP5 | 87.02 | 4.52x slower | 18.4x |
|
||||
| BS3 | 1,597.5 | 82.9x slower | 1.0x |
|
||||
|
||||
**Analysis**:
|
||||
- Vern7 is **3.8x faster** than DP5 and **55x faster** than BS3
|
||||
- Vern7 is **4.5x faster** than DP5 and **83x faster** than BS3
|
||||
- Smooth periodic problems like harmonic oscillators are ideal for high-order methods
|
||||
- BS3 requires ~1.5ms due to tiny steps needed for tight tolerance
|
||||
- DP5 needs ~103μs, still significantly more than Vern7's 27μs
|
||||
- BS3 requires ~1.6ms due to tiny steps needed for tight tolerance
|
||||
- DP5 needs ~87μs, still significantly more than Vern7's 19μs
|
||||
- Higher dimensionality (2D vs 1D) amplifies the advantage of larger steps
|
||||
|
||||
---
|
||||
@@ -60,11 +60,11 @@ These results confirm Vern7's design goal: **maximum efficiency for high-accurac
|
||||
|
||||
| Method | Time (μs) | Relative Speed | Speedup |
|
||||
|--------|-----------|----------------|---------|
|
||||
| **Vern7** | **98.75** | **1.00x** (baseline) | **8.77x** |
|
||||
| DP5 | 865.79 | 8.77x slower | 1.0x |
|
||||
| **Vern7** | **66.47** | **1.00x** (baseline) | **9.89x** |
|
||||
| DP5 | 657.35 | 9.89x slower | 1.0x |
|
||||
|
||||
**Analysis**:
|
||||
- Vern7 is **8.8x faster** than DP5 for this challenging 6D problem
|
||||
- Vern7 is **9.9x faster** than DP5 for this challenging 6D problem
|
||||
- Orbital mechanics requires tight tolerances to maintain energy conservation
|
||||
- BS3 was too slow to include in the benchmark at this tolerance
|
||||
- 6D problem with long integration time shows Vern7's scalability
|
||||
@@ -78,17 +78,20 @@ These results confirm Vern7's design goal: **maximum efficiency for high-accurac
|
||||
|
||||
| Method | Time (μs) | Relative Speed | Notes |
|
||||
|--------|-----------|----------------|-------|
|
||||
| **Vern7** | **11.05** | **1.00x** (baseline) | Lazy extra stages |
|
||||
| DP5 | 18.27 | 1.65x slower | Standard dense output |
|
||||
| **Vern7** | **7.36** | **1.00x** (baseline) | Lazy extra stages |
|
||||
| DP5 | 15.48 | 2.10x slower | Standard dense output |
|
||||
|
||||
**Analysis**:
|
||||
- Vern7 with lazy computation is **1.65x faster** than DP5
|
||||
- Vern7 with lazy computation is **2.1x faster** than DP5
|
||||
- First interpolation triggers lazy computation of 6 extra stages (k11-k16)
|
||||
- Subsequent interpolations reuse cached extra stages (~10ns RefCell overhead)
|
||||
- Despite computing extra stages, Vern7 is still faster overall due to:
|
||||
1. Fewer total integration steps (larger step sizes)
|
||||
2. Higher accuracy interpolation (7th order vs 5th order)
|
||||
- Lazy computation adds minimal overhead (~6μs for 6 stages, amortized over 100 interpolations)
|
||||
- Lazy computation adds minimal overhead, amortized over 100 interpolations
|
||||
- Each benchmark iteration builds a fresh `Solution`, so the lazy stages are
|
||||
computed once per iteration rather than served from the `RefCell` cache; this
|
||||
is the honest cost of interpolating into a solution you have just produced
|
||||
|
||||
---
|
||||
|
||||
@@ -100,11 +103,11 @@ These results confirm Vern7's design goal: **maximum efficiency for high-accurac
|
||||
|
||||
| Tolerance | DP5 (μs) | Vern7 (μs) | Speedup | Winner |
|
||||
|-----------|----------|------------|---------|--------|
|
||||
| 1e-6 | 2.63 | 2.05 | 1.28x | Vern7 |
|
||||
| 1e-7 | 3.71 | 2.74 | 1.35x | Vern7 |
|
||||
| 1e-8 | 5.43 | 3.12 | 1.74x | Vern7 |
|
||||
| 1e-9 | 7.97 | 3.86 | 2.06x | **Vern7** |
|
||||
| 1e-10 | 11.33 | 5.33 | 2.13x | **Vern7** |
|
||||
| 1e-6 | 1.95 | 1.57 | 1.24x | Vern7 |
|
||||
| 1e-7 | 2.76 | 2.09 | 1.32x | Vern7 |
|
||||
| 1e-8 | 4.16 | 2.26 | 1.84x | Vern7 |
|
||||
| 1e-9 | 6.23 | 2.92 | 2.13x | **Vern7** |
|
||||
| 1e-10 | 9.39 | 3.93 | 2.39x | **Vern7** |
|
||||
|
||||
### Performance Scaling Chart (Conceptual)
|
||||
|
||||
@@ -127,8 +130,8 @@ Time (μs)
|
||||
```
|
||||
|
||||
**Analysis**:
|
||||
- At **moderate tolerances (1e-6)**: Vern7 is 1.3x faster
|
||||
- At **tight tolerances (1e-10)**: Vern7 is 2.1x faster
|
||||
- At **moderate tolerances (1e-6)**: Vern7 is 1.2x faster
|
||||
- At **tight tolerances (1e-10)**: Vern7 is 2.4x faster
|
||||
- **Crossover point**: Vern7 becomes increasingly advantageous as tolerance tightens
|
||||
- DP5's time scales roughly quadratically with tolerance
|
||||
- Vern7's time scales more slowly (higher order = larger steps)
|
||||
|
||||
Reference in new issue
Block a user