-
Notifications
You must be signed in to change notification settings - Fork 48
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
MKL 2024.0.0 Pardiso fails on Windows #843
Comments
Hi @ghsilva, I noticed your message to PyPardiso haasad/PyPardiso#58 (comment) in which you offer help to get rid of the "<2024" workaround. We would also love to remove it and welcome any insights you might have on the matter. Additionally, perhaps our independent bindings can provide an extra data point to establish what causes the latest version to fail on Windows. |
Hello @gertjanvanzwieten, in case of PyPardiso it seems to fail in Windows due to multiple copies of openMP installed in the system. PyPardiso is using pip to install dependencies, is nutils also using pip or something else (i.e conda, conda-intel, conda-forge)? I will check our Windows distribution channels for Python to try to find the problem. |
Hi @ghsilva, thanks for your feedback. Indeed we use pip to install MKL for Github actions, which is the only platform we have available to study the issue. As such it is a bit difficult to establish what other libraries exist on the system. The strange thing is that there appear to be two failure modes: in some cases the linear system is solved fine but the WinError is raised during memory release (phase -1), in other cases it is the factorization that fails (phase 12). Could the presence of multiple installed versions account for this? |
@gertjanvanzwieten it doesn't sound like the same problem that we identified in PyPardiso, please take a look in my comment there. I am trying to reproduce the issue in my system, but by default the "python -m build" in nutils does not use oneMKL. |
@ghsilva indeed the symptoms do seem to be a bit different in our case, so maybe we are looking at different issues both brought on by the new version. Thanks for looking into it. There is no build command in nutils, you should be able to pip install and then run any of the example scripts, or python -m unittest to run the unit tests. Set In case MKL is installed through pip we set the environment variable The single threaded configuration is unrelated and optional. |
@gertjanvanzwieten I had the following setup that fails with PyPardiso and nutils:
$> python --version
$> conda env config vars set NUTILS_MATRIX=mkl
$> python -m build $> python -m unittest
#Installing python within conda is a workaround to fix the intel-openmp2024.* dll issue: $> pip install treelog stringly bottombar appdirs nutils_poly psutil matplotlib
$> python -m unittest #It completed the tests with the following message:
#I will try to reproduce the environment closer to what you have on GitHub action tests as I am getting different error messages |
(@ghsilva sorry for the late reply, I missed a notification) If the (local) pip installation directory is not in Thanks for your continued attention to this issue! |
With the release of Intel MKL version 2024.0.0 on Nov 14 2023, certain invocations of
libmkl.pardiso
fail on Windows withOSError: [WinError -1066598274] Windows Error 0xc06d007e
. An example of failing unit tests can be found at https://github.com/evalf/nutils/actions/runs/7247258878/job/19740839287.It is unclear what causes these failures. Since we don't have access to a Windows platform to investigate the issue locally, we resorted to placing an upper bound on the supported MKL version (#837, #835) until a better solution presents itself. We will keep this issue open until the bound can be removed.
The text was updated successfully, but these errors were encountered: