Skip to content

Benchmarks

❯ pfun-cma-model benchmark --repeats 500 --warmup 10

    ╔══════════════════════════════════════════════════════════════════════════════╗
    ║         PFun CMA Engine — Python vs. C Extension Benchmark                 ║
    ╚══════════════════════════════════════════════════════════════════════════════╝

Library:   /home/robbiec/Git/pfun-cma-engine-c/pfun_cma_engine/libpfun_cma_engine.so
Repeats:   500 per configuration (median reported)
Warmup:    10 runs excluded from timing
Sizes:     [256, 512, 1024, 2048, 4096, 8192, 16384, 32768]
Params:    {'d': 0.0, 'taup': 1.0, 'taug': 1.0, 'B': 0.05, 'Cm': 0.0, 'toff': 0.0}
Testing:   python, c

──────────────────────────────────────────────────────────────────────────────
N=   256  │  Python     1.27 ms  │  C     93.7 µs  │    13.5×  │  Δmax=2.22e-16 ✓
N=   512  │  Python     1.39 ms  │  C    167.0 µs  │     8.3×  │  Δmax=1.11e-16 ✓
N= 1,024  │  Python     1.57 ms  │  C    313.8 µs  │     5.0×  │  Δmax=1.11e-16 ✓
N= 2,048  │  Python     1.92 ms  │  C    605.7 µs  │     3.2×  │  Δmax=2.22e-16 ✓
N= 4,096  │  Python     2.57 ms  │  C     1.20 ms  │     2.1×  │  Δmax=2.22e-16 ✓
N= 8,192  │  Python     3.84 ms  │  C     2.36 ms  │     1.6×  │  Δmax=3.33e-16 ✓
N=16,384  │  Python     6.52 ms  │  C     4.70 ms  │     1.4×  │  Δmax=2.22e-16 ✓
N=32,768  │  Python    12.39 ms  │  C     9.85 ms  │     1.3×  │  Δmax=2.22e-16 ✓
──────────────────────────────────────────────────────────────────────────────

Summary Table
┌──────────┬──────────────┬──────────────┬──────────┬─────────────┐
│  N       │  Python      │  C Extension │  Speedup │  Max |Δ|    │
├──────────┼──────────────┼──────────────┼──────────┼─────────────┤
│     256 │     1.27 ms │     93.7 µs │   13.5× │  2.22e-16   │
│     512 │     1.39 ms │    167.0 µs │    8.3× │  1.11e-16   │
│   1,024 │     1.57 ms │    313.8 µs │    5.0× │  1.11e-16   │
│   2,048 │     1.92 ms │    605.7 µs │    3.2× │  2.22e-16   │
│   4,096 │     2.57 ms │     1.20 ms │    2.1× │  2.22e-16   │
│   8,192 │     3.84 ms │     2.36 ms │    1.6× │  3.33e-16   │
│  16,384 │     6.52 ms │     4.70 ms │    1.4× │  2.22e-16   │
│  32,768 │    12.39 ms │     9.85 ms │    1.3× │  2.22e-16   │
└──────────┴──────────────┴──────────────┴──────────┴─────────────┘

Average speedup:  4.6×
Peak speedup:     13.5×  (N=256)
Total Python:        31.47 ms
Total C:             19.29 ms
Correctness:      ALL PASSED ✓