akarbown commented on issue #18255:
URL:
https://github.com/apache/incubator-mxnet/issues/18255#issuecomment-817830091
I have compiled MxNet library (libmxnet.so), that uses MKL via Single
Dynamic Library (so libmxnet.so links with libmkl_rt.so) and uses OpenMP
separately (so libmxnet.so also links with libgomp.so.1). Since, MxNet depends
on GNU OpenMP, I'm forcing MKL to use GNU threading layer
(MKL_THREADING_LAYER=GNU), so I can have a single (GNU) OpenMP runtime in the
process.
However, libmkl_rt fails to find GNU OpenMP (strace revealed that it looks
for libgomp.so which is not present in filesystem - instead of libgomp.so.1)
and then fallbacks for libiomp5.so:
```
[pid 29641]
open("/opt/intel/compilers_and_libraries_2020.4.304/linux/mkl/lib/intel64_lin/libmkl_core.so",
O_RDONLY|O_CLOEXEC <unfinished ...>
[pid 29641]
open("/opt/intel/compilers_and_libraries_2020.4.304/linux/mkl/lib/intel64_lin/libgomp.so",
O_RDONLY|O_CLOEXEC <unfinished ...>
[pid 29641] open("/opt/rh/rh-python36/root/usr/bin/libgomp.so",
O_RDONLY|O_CLOEXEC <unfinished ...>
[pid 29641]
open("/opt/intel/compilers_and_libraries_2020.4.304/linux/mkl/lib/intel64_lin/../../../compiler/lib/intel64/libgomp.so",
O_RDONLY|O_CLOEXEC <unfinished ...>
[pid 29641]
open("/opt/rh/devtoolset-7/root/usr/lib/gcc/x86_64-redhat-linux/7/libgomp.so",
O_RDONLY|O_CLOEXEC <unfinished ...>
[pid 29641]
open("/opt/intel/compilers_and_libraries_2020.4.304/linux/mkl/lib/intel64_lin/libiomp5.so",
O_RDONLY|O_CLOEXEC <unfinished ...>
[pid 29641] open("/opt/rh/rh-python36/root/usr/bin/libiomp5.so",
O_RDONLY|O_CLOEXEC <unfinished ...>
[pid 29641]
open("/opt/intel/compilers_and_libraries_2020.4.304/linux/mkl/lib/intel64_lin/../../../compiler/lib/intel64/libiomp5.so",
O_RDONLY|O_CLOEXEC <unfinished ...>
[pid 29641]
open("/opt/intel/compilers_and_libraries_2020.4.304/linux/mkl/lib/intel64_lin/libmkl_gnu_thread.so",
O_RDONLY|O_CLOEXEC <unfinished ...>
[pid 29641]
open("/opt/intel/compilers_and_libraries_2020.4.304/linux/mkl/lib/intel64_lin/libmkl_intel_lp64.so",
O_RDONLY|O_CLOEXEC <unfinished ...>
[pid 29641]
open("/opt/intel/compilers_and_libraries_2020.4.304/linux/mkl/lib/intel64_lin/libmkl_avx2.so",
O_RDONLY|O_CLOEXEC <unfinished ...>
```
So I end up having two different OpenMP implementations in a single process
and that's causing runtime issues - I'm observing hangs during unit tests.When
I create a symlink (libgomp.so -> libgomp.so.1) I can confirm that MKL opens
GNU OpenMP and my tests pass.
I have reported the issue internally and I'm waiting for the solution of
that issue.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]