Issue with numexpr() on MBAR initialization; utils.py expects to find mkl acceleration and crashes when not found
See original GitHub issueHowdy folks,
Upon initializing MBAR using:
# Initialize MBAR with Newton-Raphson
if (n==0): # only print this information the first time
print ""
print "Initializing MBAR:"
print "--K = number of Temperatures with data = %d" % (originalK)
print "--L = number of total Temperatures = %d" % (K)
print "--N = number of Energies per Temperature = %d" % (numpy.max(Nall_k))
# Use Adaptive Method (Both Newton-Raphson and Self-Consistent, testing which is better)
if (n==0):
initial_f_k = None # start from zero
else:
initial_f_k = mbar.f_k # start from the previous final free energies to speed convergence
mbar = pymbar.MBAR(u_kln, Nall_k, verbose=False, relative_tolerance=1e-12, initial_f_k=initial_f_k)`
^^(Sorry for how this block of code looks. I couldn’t get it to look right in github. I assure you it is structurally correct in the actual python script)
I get an issue with the numexpr module trying to find a means for mkl acceleration, which gave the following error stack upon failing to do so.
pythonpython: : symbol lookup errorsymbol lookup error: pythonpython: /home/bmanubay/anaconda2/lib/python2.7/site-packages/numexpr/../../../libmkl_vml_avx2.so: : /home/bmanubay/anaconda2/lib/python2.7/site-packages/numexpr/../../../libmkl_vml_avx2.so: symbol lookup errorsymbol lookup errorpython: undefined symbol: mkl_serv_getenv: : : undefined symbol: mkl_serv_getenv/home/bmanubay/anaconda2/lib/python2.7/site-packages/numexpr/../../../libmkl_vml_avx2.sopython/home/bmanubay/anaconda2/lib/python2.7/site-packages/numexpr/../../../libmkl_vml_avx2.sopythonsymbol lookup error: python: : : : undefined symbol: mkl_serv_getenv: symbol lookup errorundefined symbol: mkl_serv_getenv
(very odd traceback…)
From what @mrshirts and I could tell, the origin is traced back to utils.py where the logsumexp()
function calls numexpr.evaluate()
on multiple occasions. We checked that numexpr() was functional on my python installation, but we think MBAR might be trying to implement some mkl option automatically without testing for it first. Any thoughts?
Issue Analytics
- State:
- Created 7 years ago
- Comments:6 (2 by maintainers)
Right.
utils.py
tries to loadnumexpr
which is part of the MKL acceleration library, and has a fallback if it can’t find it. So the issue would lie at that level.The current plan is to revert some of the algorithms back to not need mlk-rt. I just got back from travelling, and this is one of the things to do in the next couple weeks. Thanks for the feedback!