From 874b017abb2fba96241eb5ae5c7a3f956aff36f1 Mon Sep 17 00:00:00 2001 From: Nicole Date: Fri, 24 Apr 2026 16:48:57 -0300 Subject: [PATCH] Parallelize chunk_and_generate with par_chunks --- prover/src/tables/trace_builder.rs | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/prover/src/tables/trace_builder.rs b/prover/src/tables/trace_builder.rs index b1af698de..56636fc39 100644 --- a/prover/src/tables/trace_builder.rs +++ b/prover/src/tables/trace_builder.rs @@ -1654,15 +1654,23 @@ struct CollectedOps { } /// Chunk raw ops and generate one trace table per chunk. -fn chunk_and_generate( +fn chunk_and_generate( ops: &[T], max_rows: usize, - generate: impl Fn(&[T]) -> TraceTable, + generate: impl Fn(&[T]) -> TraceTable + Sync + Send, ) -> Vec> { if ops.is_empty() { vec![generate(&[])] } else { - ops.chunks(max_rows).map(generate).collect() + #[cfg(feature = "parallel")] + { + use rayon::prelude::*; + ops.par_chunks(max_rows).map(&generate).collect() + } + #[cfg(not(feature = "parallel"))] + { + ops.chunks(max_rows).map(generate).collect() + } } }