You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Thanks for the suggestions. I typed this too fast in the morning. The issue is that Ubuntu requires a new version of libzmq libzmq3 and it seems that the functions/arguments changed in this fucntion comapred to the previous versions. So to me it seems like the RooFit part for roofit_multiprocess needs an update if the new ZMQ is to be used (required by Ubuntu 26.04)
Thanks for the report. The compilation is failing because roofit_multiprocess requires ZeroMQ with the draft API enabled, which is not enabled in the Ubuntu package. I'll address this issue by updating the CMake code to give a clearer error.
By the way, the the reason why you see this now is because the builtin_zeromq and builtin_cppzmq options were removed. This was done to reduce ROOTs vulnerability surface related to low-level builtin dependencies.
The drawback is that ZeroMQ with the draft API is not available everywhere, as you are seeing now. This is an acceptable drawback given that roofit_multiprocess is an experimental performance optimization that has so far only proven beneficial in "clinical trials" (e.g. the benchmark Higgs analysis it was designed for), so it cannot be recommended to the general user. Also, the R&D line of gradient parallelization has been superseded by the Automatic Differentiation (AD) R&D effort, which shows even greater gradient speedups with better scalability and only using one core. The other side of the new RooFit multiprocessing, the parallelization across likelihood components, also has yet to be proven to be more performant/scalable than the old NumCPU() implementation, which didn't need the ZeroMQ dependency.
Anyway, we'll keep roofit_multiprocess around because the underlying multiprocessing abstraction might be useful later, but for now I see the increased difficulty in building ROOT with it as a positive, because it deters users from using unstable features where we don't have the bandwidth for support!
Activity
TomasDado commentedon May 15, 2026
Just to add that removing
-Droofit_multiprocess=ONfixes the compilationferdymercury commentedon May 15, 2026
Release notes specifying these changes are here #21596 but not yet merged.
Wrt ZMQ, @guitargeek might know better if there is a missing dependency or if it's an incremental build issue or sth like that.
Btw if you
apt install libtiff-dev libxxhash-dev libgl2ps-dev liblz4-devyou can avoid additional builtins.TomasDado commentedon May 15, 2026
Thanks for the suggestions. I typed this too fast in the morning. The issue is that Ubuntu requires a new version of
libzmqlibzmq3 and it seems that the functions/arguments changed in this fucntion comapred to the previous versions. So to me it seems like the RooFit part for roofit_multiprocess needs an update if the new ZMQ is to be used (required by Ubuntu 26.04)ferdymercury commentedon May 15, 2026
Probably 8446def has to be reverted
or find_package needs to specify 4.3.5 as min version
fyi @egpbos
guitargeek commentedon May 18, 2026
Thanks for the report. The compilation is failing because
roofit_multiprocessrequires ZeroMQ with the draft API enabled, which is not enabled in the Ubuntu package. I'll address this issue by updating the CMake code to give a clearer error.By the way, the the reason why you see this now is because the
builtin_zeromqandbuiltin_cppzmqoptions were removed. This was done to reduce ROOTs vulnerability surface related to low-level builtin dependencies.The drawback is that ZeroMQ with the draft API is not available everywhere, as you are seeing now. This is an acceptable drawback given that
roofit_multiprocessis an experimental performance optimization that has so far only proven beneficial in "clinical trials" (e.g. the benchmark Higgs analysis it was designed for), so it cannot be recommended to the general user. Also, the R&D line of gradient parallelization has been superseded by the Automatic Differentiation (AD) R&D effort, which shows even greater gradient speedups with better scalability and only using one core. The other side of the new RooFit multiprocessing, the parallelization across likelihood components, also has yet to be proven to be more performant/scalable than the oldNumCPU()implementation, which didn't need the ZeroMQ dependency.Anyway, we'll keep
roofit_multiprocessaround because the underlying multiprocessing abstraction might be useful later, but for now I see the increased difficulty in building ROOT with it as a positive, because it deters users from using unstable features where we don't have the bandwidth for support![cmake] error out if ZeroMQ has no draft api support
[cmake] error out if ZeroMQ has no draft api support
[cmake] error out if ZeroMQ has no draft api support
[cmake] error out if ZeroMQ has no draft api support