-
Notifications
You must be signed in to change notification settings - Fork 0
Home
Augists edited this page Apr 23, 2026
·
4 revisions
Multi-Terminal Parallel Network Decision Diagrams — a C library for parallel NDD operations built on top of Sylvan (BDD) and Lace (work-stealing scheduler), with a Java API via JNI.
These pages expand on the top-level README.md in the repo. For build commands and architecture outline the README is also a good entry point.
-
Building and Running — clone + submodule init, CMake build, test/benchmark binaries, PGO + LTO build,
bench_sweep.sh -
JNI and Java API — Maven build, library path discovery,
MTPNDDEngine/MTPNDD/MTPNDDConfigwalkthrough -
Configuration Reference — every field in
mtpndd_pal_config_t/MTPNDDConfig.Builder, defaults, tuning notes -
Visualization —
mtpndd_print_dot/mtpndd_fprint_dot, rendering with Graphviz - Architecture — layer stack, per-module responsibilities, field system, GC model, Lace 1.6 context rules
-
Performance — nqueens sweep on
feature/c(2026-04-22, Release + PGO, scaling tables) plus the 2026-04-24 SRE sweep comparingfeature/gov1.18 vs.feature/c
- Two parallel implementations of the same public JNI surface:
-
feature/c— the original C + Sylvan + Lace reference. Sylvan submodule atsylvan/on branchfeature/mtpndd-perworker-refs(forked fromtrolando/sylvan1.10.0 with per-workermtbdd_refssharding +sylvan_set_spawn_depth_cutoff); Lace 1.6.x fetched by Sylvan's CMake build.libmtpnddjni.so≈ 454 KB. -
feature/go— pure-Go port (no Sylvan, no Lace; goroutine-based parallelism). Produces a drop-inlibmtpnddjni.soviacgo -buildmode=c-shared. ≈ 2.8 MB. Current tag: v1.18.
-
- Pre-migration C layout preserved at the
legacy-vendored-sylvantag - Every performance number on this wiki is annotated with the branch
(
feature/c/feature/go) it came from — the two .so files are not interchangeable for benchmarking
Headline (feature/go v1.18 vs feature/c, w=4): ft08 MF=3 2.31× · ft12 MF=3 2.92× · nqueens N=13 22 % faster — see Performance.
feature/go @ b8e651c · feature/c @ head · Apache-2.0
Maintained by Augists (<augists@duck.com>). Issues & PRs: github.com/Augists/mtpndd.