See how AADC C++ performance scales across three dimensions: threads, trades, and scenarios.
Near-linear scaling enables predictable performance for any workload size.
AADC C++ scales linearly across all dimensions
AADC C++ achieves 28.5x speedup going from 1 to 32 threads - near-ideal linear scaling with 89% efficiency
Evaluation time scales linearly with trades - 100x more trades = 100x more time (predictable performance)
Evaluation time scales linearly with scenarios - 500K scenarios takes exactly 50x longer than 10K scenarios
Memory usage is ~1.9 MB per 1K scenarios, independent of trades or threads. 10K → 19 MB, 100K → 192 MB, 500K → 961 MB
1000 trades x 100K scenarios x 252 timesteps
Efficiency = (speedup / threads) x 100%. Values over 100% indicate super-linear scaling due to cache effects.
8 threads x 100K scenarios x 252 timesteps
Per-trade overhead decreases as batch size increases due to amortized kernel setup costs.
8 threads x 1000 trades x 252 timesteps
Memory scales only with scenarios (not trades or threads). At 500K scenarios = 961 MB.
~1.9 MB per 1K scenarios, independent of trades or threads
Memory usage is dominated by the scenario count. Each scenario requires ~1.9 MB of storage for paths and intermediate results.
8 threads, 252 timesteps, Delta + Rho + Vega
| Scenarios | 10 Trades | 100 Trades | 1000 Trades |
|---|---|---|---|
| 10K | 0.103s | 0.199s | 1.478s |
| 100K | 1.077s | 2.164s | 15.694s |
| 500K | 5.204s | 10.742s | 79.913s |
Understanding the Matrix: This matrix shows Greeks computation time for all combinations of trades and scenarios.
Near-linear scaling due to native thread pool with minimal synchronization overhead
Linear scaling - each trade is independent and processed sequentially
Linear scaling - scenarios are parallelized across threads
1000 trades x 100K scenarios x 252 timesteps
| Threads | Price Only (s) | Greeks (s) | Speedup | Efficiency | Memory |
|---|---|---|---|---|---|
| 1 | 76.01 | 145.09 | 1.0x | 100% | 192 MB |
| 4 | 22.22 | 30.96 | 4.7x | 117% | 192 MB |
| 8 | 11.18 | 15.69 | 9.2x | 116% | 192 MB |
| 16 | 6.02 | 8.25 | 17.6x | 110% | 192 MB |
| 32 | 3.17 | 5.09 | 28.5x | 89% | 192 MB |
All tests run on multi-core CPU with AADC C++ v2.1.0/2.3.0. Greeks include Delta, Rho, and Vega.
AADC C++ delivers predictable, linear scaling for production workloads of any size.