Skip to content

Raw CSC factor path streaming into helper shared memory#1

Merged
krystophny merged 1 commit into
mainfrom
m4/ipc-memory-footprint
Jul 2, 2026
Merged

Raw CSC factor path streaming into helper shared memory#1
krystophny merged 1 commit into
mainfrom
m4/ipc-memory-footprint

Conversation

@krystophny

Copy link
Copy Markdown
Contributor

Adds a raw CSC overload to sparse_factorsparse_factor(solver, nrow, ncol, nz, col_ptr, row_idx, val, status) — that streams the matrix arrays straight into the UMFPACK helper's shared mapping instead of routing through a csc_t copy. Callers that already hold CSC arrays (NEO-2's sparse_solve_fortsparse adapter) drop one matrix-sized allocation per factorization.

Motivation: itpplasma/NEO-2#101's run-golden-record job dies on the runner during the multispecies QL case; local PSS profiling of that case shows the IPC backend peaking ~2 GB above the in-process UMFPACK path, with the adapter's csc_t copy the largest avoidable share.

Verification

Test fails on main

test_fortsparse_umfpack_ipc extensions (raw-factor roundtrip real/complex, refactor-after-free) do not exist on main; with the test but no raw overload the build fails to resolve the new sparse_factor specifics.

Test passes after fix

$ ctest --test-dir build --output-on-failure
 9/10 Test  #9: test_fortsparse_umfpack_ipc ......   Passed    0.13 sec
100% tests passed, 0 tests failed out of 10

fo lint clean (0 warnings).

@krystophny krystophny merged commit 23f3f6c into main Jul 2, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant