Benchmark Summary

This page summarizes the public benchmark tables that are regenerated by the scripts in this repository. The full command list is in Benchmark Reproduction.

The current tables should be read as implementation evidence, not as a final claim about the fastest persistent-homology software. GUDHI is used as the main external reference because the PH-roadmap benchmark paper compares many packages and makes GUDHI a useful calibrated baseline: Otter et al., 2017.

What Is Compared

The synthetic table compares two MorseFrames paths on the same generated simplicial complexes:

  • ordinary full-complex persistence on the filtration;

  • Morse persistence after building a Morse sequence and the corresponding reference/reduction input.

That table is generated in core validation mode with the C++ backend active. If morseframes.cpp_backend_available() is false when the command is run, the numbers measure the pure-Python fallback instead and should not replace the tracked native-backed table.

The native GUDHI-view tables compare three in-process paths on the same Gudhi::Simplex_tree input:

  • Direct: MorseFrames through a read-only Simplex_tree view;

  • Import: copy the GUDHI tree into the compact owning MorseFrames complex, then run MorseFrames;

  • GUDHI: GUDHI persistent cohomology on the original Simplex_tree.

Direct is the relevant integration direction. Import is useful as a diagnostic, but it includes a copy that we would not want in an upstream GUDHI entry point.

How To Read The Ratios

For Std/Morse, values above 1 mean the Morse pipeline is faster than the ordinary full-complex reducer for that row.

For GUDHI/Direct, values above 1 mean the direct MorseFrames view is faster end-to-end than GUDHI persistence on the same Simplex_tree. Values below 1 mean GUDHI is faster.

For GUDHI/Reducer, values above 1 mean the Morse reducer kernel is faster than GUDHI persistence after the Morse input has already been built. This ratio does not include view construction, sequence construction, or reference-input construction.

Current Reading

The native-backed synthetic scale table now shows Std/Morse > 1 on the reported lower-star, plateau, and Rips rows. The clearest stress-test behavior is on the denser Rips examples, where ordinary reduction becomes more expensive and the strategy choice matters strongly.

The native GUDHI-view tables are more nuanced. On the reported default and larger lean runs, the direct f-max, f-min, and same-level paths are faster than GUDHI end-to-end on the tested rows, while plateau-greedy remains more mixed. The import path is still much slower because copying the Simplex_tree dominates. The reducer kernel itself is faster than GUDHI persistence on all reported native rows, but much of the remaining engineering work is in pre-reducer construction costs.

The stage-profile table makes that bottleneck explicit. In the quick native profile, roughly three quarters of direct-path time is spent before the reducer starts: read-only view construction plus Morse frame construction. That is why the next optimization work should focus on the view, sequence construction, and reference-input construction rather than only the annotation reducer.

Compact Tables

The tables below are short, rendered summaries of the current public benchmark fragments. This block is generated by tools/render_benchmark_summary.py. The full LaTeX fragments remain the source for reproducible benchmark tables in this software repository; they are not manuscript source.

Synthetic Scale

Family

Strategy

Cases

Avg. simplices

Critical %

Morse time

Std/Morse

lower-star

f-max

3

317.7

18.8

59.3 us

1.97 (1.91-1.99)

lower-star

f-min

3

317.7

18.8

86.7 us

1.34 (1.29-1.35)

lower-star

saturated

3

317.7

18.8

112.9 us

1.08 (1.03-1.09)

lower-star

same-level

3

317.7

36.2

86.7 us

1.32 (1.26-1.37)

plateau

f-max

3

317.7

22.1

66.0 us

1.82 (1.62-1.88)

plateau

f-min

3

317.7

22.1

99.8 us

1.15 (1.09-1.18)

plateau

saturated

3

317.7

22.1

99.7 us

1.16 (1.11-1.21)

plateau

same-level

3

317.7

38.5

87.2 us

1.30 (1.26-1.34)

Rips

f-max

3

2,770.3

67.3

970.3 us

4.13 (3.97-4.61)

Rips

f-min

3

2,770.3

67.3

1,146.1 us

3.65 (3.41-3.86)

Rips

saturated

3

2,770.3

67.3

1,361.1 us

2.91 (2.84-3.20)

Rips

same-level

3

2,770.3

94.2

820.0 us

5.32 (4.69-5.64)

Native GUDHI View

This compact table reports the best GUDHI/Direct strategy for each default 30-repeat native case.

Case

Simplices

Best direct strategy

Direct

GUDHI

GUDHI/Direct

GUDHI/Reducer

flag-120-r018

2,081

same-level

0.65 ms

0.88 ms

1.32 (1.31-1.36)

4.40 (4.26-4.49)

flag-160-r016

2,957

same-level

0.99 ms

1.35 ms

1.36 (1.33-1.44)

4.33 (4.22-4.65)

grid-32x32-plateau

5,891

f-max

1.35 ms

2.68 ms

1.91 (1.84-1.99)

7.41 (7.24-7.59)

grid-48x48-plateau

13,443

f-max

2.31 ms

5.07 ms

2.28 (2.13-2.34)

116.89 (110.65-120.28)

Direct-Path Stage Split

Stage group

Share

Interpretation

Read-only view construction

38.2%

Simplex extraction, boundary lookup, coboundaries, and order arrays.

Morse frame construction

37.9%

Morse sequence plus reference/reduction-input construction.

Reducer kernel

24.3%

Annotation reduction after the Morse input has been built.

All pre-reducer work

75.7%

Current native-adapter bottleneck before the reducer starts.

Public Artifacts

The main table fragments are tracked in the repository:

Raw CSVs, manuscript prose fragments, manuscript PDFs, and private discussion notes are intentionally kept out of the public package repository.