Skip to content

[v3 backport] Add Polyester threading extension for FastBroadcast VectorOfArray#568

Merged
ChrisRackauckas merged 4 commits intoSciML:v3-backportfrom
ChrisRackauckas-Claude:polyester-threading-ext-v3
Apr 5, 2026
Merged

[v3 backport] Add Polyester threading extension for FastBroadcast VectorOfArray#568
ChrisRackauckas merged 4 commits intoSciML:v3-backportfrom
ChrisRackauckas-Claude:polyester-threading-ext-v3

Conversation

@ChrisRackauckas-Claude
Copy link
Copy Markdown
Contributor

Summary

Backport of #567 to the v3-backport branch. Bumps version to 3.54.0.

  • Replaces Base.Threads threading with Polyester @batch for FastBroadcast VectorOfArray operations (addresses Multithreading with RecursiveArrayTools.VectorOfArray is broken #564)
  • Creates new 3-way extension RecursiveArrayToolsFastBroadcastPolyesterExt triggered by [FastBroadcast, Polyester]
  • Without Polyester loaded, threaded broadcasting falls back to serial to avoid issues with mixing Polyester and Base threading

Test plan

  • Full Pkg.test() passes locally on v3 branch
  • New Polyester extension test verifies extension loads and produces correct results
  • CI

🤖 Generated with Claude Code

ChrisRackauckas and others added 4 commits April 4, 2026 07:47
…ay (SciML#564)

Replace Base.Threads threading with Polyester @Batch in FastBroadcast
VectorOfArray extension. When Polyester is loaded, the 3-way extension
RecursiveArrayToolsFastBroadcastPolyesterExt provides threaded
broadcasting using Polyester.@Batch. Without Polyester, threaded
broadcasting falls back to serial to avoid issues with mixing
Polyester and Base threading. Bump version to 3.54.0.

Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
When Polyester is not loaded and a user requests threaded FastBroadcast
on VectorOfArray{SArray}, throw an error explaining they need to load
Polyester.jl. Also fix tests to use Vector-of-SVector construction
(not Matrix-of-SVector) to properly exercise the SArray-specific path.

Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
When Polyester is loaded, RecursiveArrayToolsFastBroadcastPolyesterExt
defines more-specific methods for AbstractVectorOfSArray that win
dispatch, so the base ext's AbstractVectorOfArray fallback is only
reached when Polyester is not loaded. The flag check was redundant.

Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
The Tests.yml workflow was only triggering on PRs to master, so PRs
targeting v3-backport had no CI coverage. Add v3-backport to the
branches list for both pull_request and push triggers.

Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@ChrisRackauckas ChrisRackauckas merged commit 5798d0f into SciML:v3-backport Apr 5, 2026
21 of 26 checks 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.

2 participants