Skip to content

[1.13] openblas: Carry upstream fix for allocator contention between threads - #64257

Merged
ViralBShah merged 2 commits into
backports-release-1.13from
openblas-default-allocator-1.13
Oct 26, 2026
Merged

ViralBShah merged 2 commits into
backports-release-1.13from
openblas-default-allocator-1.13

Conversation

@ViralBShah

@ViralBShah ViralBShah commented Oct 26, 2026 •

Copy link
Copy Markdown
Member

The 1.13 version of #64249: carries the fix from OpenMathLib/OpenBLAS#6105 for lock contention in OpenBLAS's default buffer allocator, as a patch on 0.3.30. Parallel supernodal CHOLMOD solves and small trsv calls from many threads get an order of magnitude faster.

The first commit adds the patch to the source build. On 0.3.30 it also includes the small part of an earlier upstream change that the fix depends on, which makes the buffer table's fields _Atomic. The second updates OpenBLAS_jll to 0.3.30+1, built with the same patch in JuliaPackaging/Yggdrasil#15326.

🤖 Generated with Claude Code

…threads

OpenBLAS's default (non-TLS) buffer allocator, which Julia uses,
serializes threads that call BLAS concurrently. Small level-2 calls such
as `trsv` from several threads then run slower than the same calls made
one after another, and so do parallel solves with one supernodal CHOLMOD
factor, which make many such calls. Carry the five commits of
OpenMathLib/OpenBLAS#6105, which remove that contention and fix a crash
once more buffers are in use than the main table holds.

This is the 0.3.30 counterpart of #64249. The fix builds
on the buffer table's fields being `_Atomic`, which upstream did after
0.3.30, so the patch starts with that part of the earlier upstream
change alone. As on master, the overflow area's release table keeps its
`malloc` instead of upstream's `calloc`.

Assisted-by: Claude Code (Opus 5.5)
Use the build of OpenBLAS 0.3.30 that carries the allocator contention
fix from the previous commit, so that the binaries get it too.

Assisted-by: Claude Code (Opus 5.5)
@ViralBShah
ViralBShah marked this pull request as ready for review October 26, 2026 22:15
@ViralBShah
ViralBShah requested a review from giordano as a code owner October 26, 2026 22:15
@ViralBShah ViralBShah added the merge me PR is reviewed. When all tests are passing merge, making sure commit message is good. label Oct 26, 2026
@ViralBShah
ViralBShah removed the request for review from giordano October 26, 2026 22:16
@ViralBShah
ViralBShah merged commit 1ffbb42 into backports-release-1.13 Oct 26, 2026
9 checks passed
@ViralBShah
ViralBShah deleted the openblas-default-allocator-1.13 branch October 26, 2026 23:00
@IanButterworth IanButterworth mentioned this pull request Oct 27, 2026
23 of 37 tasks
@DilumAluthge DilumAluthge removed the merge me PR is reviewed. When all tests are passing merge, making sure commit message is good. label Oct 28, 2026
IanButterworth pushed a commit that referenced this pull request Nov 8, 2026
…threads (#64257)

* [1.13] openblas: Carry upstream fix for allocator contention between threads

OpenBLAS's default (non-TLS) buffer allocator, which Julia uses,
serializes threads that call BLAS concurrently. Small level-2 calls such
as `trsv` from several threads then run slower than the same calls made
one after another, and so do parallel solves with one supernodal CHOLMOD
factor, which make many such calls. Carry the five commits of
OpenMathLib/OpenBLAS#6105, which remove that contention and fix a crash
once more buffers are in use than the main table holds.

This is the 0.3.30 counterpart of #64249. The fix builds
on the buffer table's fields being `_Atomic`, which upstream did after
0.3.30, so the patch starts with that part of the earlier upstream
change alone. As on master, the overflow area's release table keeps its
`malloc` instead of upstream's `calloc`.

Assisted-by: Claude Code (Opus 5.5)

* [1.13] openblas: Update OpenBLAS_jll to 0.3.30+1

Use the build of OpenBLAS 0.3.30 that carries the allocator contention
fix from the previous commit, so that the binaries get it too.

Assisted-by: Claude Code (Opus 5.5)
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.

2 participants