BenchmarksMD Trajectory Benchmarks

MD Trajectory Benchmarks

Trajectory benchmarks time frame-by-frame SASA over a whole trajectory, including reading the trajectory. All runs use zsasa 0.9.0, 128 sphere points, stride 1, the NACCESS classifier and explicit hydrogens.

Throughput summary#

Trajectory throughput against peak memory

10 threads, 128 sphere points. Points are three-run means; whiskers show one standard deviation. Both axes are logarithmic.
Data table

Native zsasa occupies the top-left corner on every trajectory: the highest frame rate at the lowest peak memory. The Python integrations, zsasa + MDTraj and zsasa + MDAnalysis, reach a similar frame rate, and their memory is set by the Python trajectory loader.

Trajectory throughput and memory at 10 threads

128 sphere points, stride 1. Bars are three-run means; whiskers show one standard deviation.
Data table

Per-dataset comparison#

5wvo_C#

ToolRuntime (s)Frames/sPeak RSS (MiB)vs MDTrajvs mdsasa-bolt
zsasa CLI f642.09478.32412.5×2.2×
zsasa CLI f322.02495.02412.9×2.2×
zsasa CLI bitmask f640.831,202.32431.4×5.4×
zsasa CLI bitmask f320.811,230.42432.1×5.5×
zsasa + MDTraj1.97507.621113.3×2.3×
zsasa + MDTraj bitmask0.851,174.621330.7×5.3×
zsasa + MDAnalysis2.35425.519311.1×1.9×
zsasa + MDAnalysis bitmask1.23816.519521.3×3.7×
MDTraj26.1538.31601.0×0.2×
mdsasa-bolt (Rust)4.51221.91,4115.8×1.0×

5wvo_C (1,001 frames, 3,858 atoms): 128 sphere points; zsasa at 10 threads.

6sup_A#

ToolRuntime (s)Frames/sPeak RSS (MiB)vs MDTrajvs mdsasa-bolt
zsasa CLI f6417.5357.115353.8×3.3×
zsasa CLI f3216.9858.913855.5×3.4×
zsasa CLI bitmask f646.95144.0155135.5×8.4×
zsasa CLI bitmask f326.79147.5149138.8×8.6×
zsasa + MDTraj17.5157.21,36053.8×3.3×
zsasa + MDTraj bitmask6.81147.01,371138.4×8.6×
zsasa + MDAnalysis17.8556.197552.8×3.3×
zsasa + MDAnalysis bitmask7.27137.6976129.6×8.0×
MDTraj942.471.11,0021.0×0.1×
mdsasa-bolt (Rust)58.5517.111,59816.1×1.0×

6sup_A (1,001 frames, 33,377 atoms): 128 sphere points; zsasa at 10 threads.

5vz0_A#

MDTraj was not measured on this trajectory.

ToolRuntime (s)Frames/sPeak RSS (MiB)vs mdsasa-bolt
zsasa CLI f6495.99104.29226.1×
zsasa CLI f3293.20107.38826.9×
zsasa CLI bitmask f6438.59259.19465.0×
zsasa CLI bitmask f3237.72265.29166.5×
mdsasa-bolt (Rust)2,507.614.024,3331.0×

5vz0_A (10,001 frames, 17,910 atoms): 128 sphere points; zsasa at 10 threads.

The "vs" columns are runtime ratios: the comparator's runtime divided by the row's runtime.

Bitmask rows on these trajectories

The bitmask rows use the single-LUT mode with an experimental bias-correction option, which may change or be removed. Without it, bitmask mode is about 2% below MDTraj on an explicit-hydrogen trajectory, so it is not recommended for such trajectories. See SASA Validation before relying on the bitmask frame rates.

Beyond the core count#

The native trajectory path accepts more worker threads than the machine has cores. The benchmark machine has 10 logical CPUs.

Native zsasa beyond the core count

Worker counts above the 10 logical CPUs of the benchmark machine. 128 sphere points, three-run means. Bitmask runs use the single-LUT mode with the experimental bias correction.
Data table

Extra workers help a little here: 40 workers are 2% to 11% faster than 10, with the largest gain on the smallest system. Per-frame SASA values were identical at 10, 20 and 40 workers.

Workloads#

Dataset Frames Atoms Source Use
5wvo_C 1,001 3,858 ATLAS validation and throughput
6sup_A 1,001 33,377 ATLAS large-system throughput
5vz0_A 10,001 17,910 ATLAS long-trajectory throughput

Memory interpretation#

zsasa streams trajectory frames and keeps memory close to the current-frame working set. In contrast, the mdsasa-bolt path uses an MDAnalysis front-end that materializes atom data for every frame before the Rust SASA core runs, so its peak memory grows with trajectory length.

Validation pointer#

Agreement with MDTraj on 5wvo_C is covered in SASA Validation.

Evidence source#

The charts and tables on this page are generated from results/tables/md_summary.csv and md_thread_scaling.csv in N283T/zsasa-benchmarks.

Edit this page