TThreadExecutor
explicit parallelism
EnableThreadSafety();
TThreadExecutor p(4); // creates a thread-pool
p.Map(func, data);
EnableImplicitMT(4);
TThreadExecutor p; // uses the existing thread-pool
p.Map(func, data);
RDataFrame
implicit parallelism
EnableThreadSafety();
RDataFrame df(data);
df.Func().GetValue(); // runs sequentially
EnableImplicitMT(4);
RDataFrame df(data);
df.Func().GetValue(); // uses the existing thread-pool
TTreeProcessorMT
??? parallelism
EnableThreadSafety();
TTreeProcessorMT tp(data); // creates a thread-pool, can't specify size
tp.Process(func);
EnableImplicitMT(4);
TTreeProcessorMT tp(data);
tp.Process(func); // uses the existing thread-pool