diff --git a/prover/src/tables/trace_builder.rs b/prover/src/tables/trace_builder.rs index d2743a1e5..7ca975970 100644 --- a/prover/src/tables/trace_builder.rs +++ b/prover/src/tables/trace_builder.rs @@ -1686,15 +1686,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() + } } }