Skip to content

Disable OpenBLAS threading for both build and runtime

The update ROOT version in LCG 94 has a new dependency on openblas. I found this to cause problems with the leak sanitizer builds as the dlopen call used by listcomponents and genconf was hanging in some sort of deadlock between the openblas threading and the leak sanitizer instrumentation.

Moreover, I guess the same issues as discussed in !1214 (merged) apply here, in that we should not let third party components at run (or build) time decide themselves how much threading to use. This is handled instead via GaudiHive. So this MR sets OPENBLAS_NUM_THREADS=1 for both build and runtime environments.

As discussed in !1214 (merged) I am still not completely convinced setting these sorts of options in individual package configurations is the correct approach. Note that TMVA is quite a common dependency, so are we going to add lines like these in all places that use it, in Rec, Phys, Analysis etc. This doesn't seem ideal to me.

This MR at least fixes the issue affecting the sanitizer builds in the nightlies, but I do think another discussion on how to handle these sorts of external library 'do not use threading please' options should be handled.

Edited by Christopher Rob Jones

Merge request reports