Skip to content

feat: parallelize ACIR parsing and decompression#20873

Merged
ludamad merged 4 commits into
merge-train/barretenbergfrom
claudebox/6987e2365fae49247e056cb7a95c3578
Feb 27, 2026
Merged

feat: parallelize ACIR parsing and decompression#20873
ludamad merged 4 commits into
merge-train/barretenbergfrom
claudebox/6987e2365fae49247e056cb7a95c3578

Conversation

@AztecBot

@AztecBot AztecBot commented Feb 25, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • Parallelizes PrivateExecutionSteps::parse() — deserializes each step's ACIR bytecode and witness data in parallel using parallel_for
  • Parallelizes PrivateExecutionStepRaw::load_and_decompress() — decompresses gzip data for each step in parallel

Closes #1395

ClaudeBox log

ClaudeBox and others added 2 commits February 25, 2026 20:10
Parallelize the two independent loops in private_execution_steps.cpp:
1. PrivateExecutionSteps::parse() - deserializes ACIR bytecode/witnesses
2. PrivateExecutionStepRaw::load_and_decompress() - decompresses gzip data

Both loops operate on independent per-step data with preallocated output
vectors, making them trivially parallelizable. The original blocker
(bincode thread-safety) is no longer relevant since the format migrated
to msgpack.

Closes AztecProtocol/barretenberg#1395

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@AztecBot AztecBot added the claudebox Owned by claudebox. it can push to this PR. label Feb 25, 2026
@ludamad ludamad changed the base branch from next to merge-train/barretenberg February 25, 2026 20:22
@ludamad ludamad added the ci-draft Run CI on draft PRs. label Feb 25, 2026
@ludamad ludamad marked this pull request as ready for review February 27, 2026 14:17
@ludamad ludamad enabled auto-merge (squash) February 27, 2026 14:19
@ludamad ludamad merged commit 8caf4dd into merge-train/barretenberg Feb 27, 2026
13 of 17 checks passed
@ludamad ludamad deleted the claudebox/6987e2365fae49247e056cb7a95c3578 branch February 27, 2026 14:29
github-merge-queue Bot pushed a commit that referenced this pull request Feb 27, 2026
BEGIN_COMMIT_OVERRIDE
chore: cleanup polynomials module (#20585)
fix: splitting scalars edge case (#20686)
feat: parallelize ACIR parsing and decompression (#20873)
END_COMMIT_OVERRIDE
johnathan79717 pushed a commit that referenced this pull request Mar 4, 2026
## Summary

- Parallelizes `PrivateExecutionSteps::parse()` — deserializes each
step's ACIR bytecode and witness data in parallel using `parallel_for`
- Parallelizes `PrivateExecutionStepRaw::load_and_decompress()` —
decompresses gzip data for each step in parallel

Closes #1395

[ClaudeBox
log](http://ci.aztec-labs.com/6987e2365fae49247e056cb7a95c3578)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ci-draft Run CI on draft PRs. claudebox Owned by claudebox. it can push to this PR.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Investigate why bincode deserialize is not threadsafe

2 participants