-
Notifications
You must be signed in to change notification settings - Fork 3
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
OpenMP Conflicts #26
Comments
Although the toast workflows in sotodlib do not hit this issue, the |
Another data point: if I install toast using the conda compilers and conda dependencies outside of the conda-bld environment (just with a regular environment loaded with all those tools, using the normal cmake build), then there is no segfault. This points to something about the build environment being incompatible, and is the next thing to investigate. |
I have tracked this down to a single shared library (
(or for example, import the site pipeline), then I get a segfault. If I remove the libactpol package, then no segfault. If I reinstall libactpol and then manually delete every other library and exectutable installed by that package, I still get the segfault. When I manually delete that |
Fixed by #31 |
In our environments, we build packages like
so3g
andtoast
which have extensions linking to OpenMP libraries, both directly and indirectly through a dependency on OpenBLAS. We pin the runtime versions of BLAS / LAPACK to use the OpenMP "flavor" of OpenBLAS. From a newly created environment, runningldd
on the compiled extensions shows consistent linking of these compiled extensions against the same versions of OpenBLAS used by SciPy.Despite this, at least on some systems, doing
import scipy; import toast
triggers a segfault, and this segfault occurs in the toast compiled extension at the first call toomp_get_num_threads()
. Reversing the import order does not segfault, but obviously there is a concern that there could be a silent error in later scipy calls in this case.Documenting some more aspects:
so3g
. Since the scipy package contains numerous extensions, the problem may be triggered by loading a specific scipy submodule with a compiled extension linking to OpenMP (directly or indirectly). For example, thesignal
submodule.The purpose of this issue is to track notes and ideas while exploring options to fix this.
The text was updated successfully, but these errors were encountered: