Forum Message

 

 

We have moved the forum to https://forum.ngsolve.org . This is an archived version of the topics until 05/05/23. All the topics were moved to the new forum and conversations can be continued there. This forum is just kept as legacy to not invalidate old links. If you want to continue a conversation just look for the topic in the new forum.

Notice

The forum is in read only mode.

occ and Pardiso error

  • go
  • New Member
  • New Member
More
11 months 4 weeks ago - 11 months 4 weeks ago #4803 by go
occ and Pardiso error was created by go
Hi,

we have built netgen/ngsolve with occ on Linux from sources successfully and we can run most examples successfully. If we run "netgen navierstokes.py" we get error messages like:

Setup and Factorization: PARDISO returned error -3!
err = reordering problem
symmetric = 0
spd = 0
compressed = 1
inner = 0x7f81240660f0
cluster = 0
Traceback (most recent call last):
  File "<string>", line 43, in <module>
netgen.libngpy._meshing.NgException: PardisoInverse: Setup and Factorization failed.
Finished executing navierstokes.py

Setup and Factorization: PARDISO returned error -2!
err = not enough memory
symmetric = 0
spd = 0
compressed = 1
inner = 0x7f39ac0660f0
cluster = 0
Traceback (most recent call last):
  File "<string>", line 54, in <module>
netgen.libngpy._meshing.NgException: PardisoInverse: Setup and Factorization failed.

The error seems to be related to occ and Pardiso. For comparison:
  • If we switch in some other python script to the PARDISO solver we observe the same error.
  • If we run "python3 navierstokes.py" the same computation is completed successfully.
  • If we use a different solver we can run "netgen navierstokes.py" successfully.
  • If we build without occ, we can run both "netgen navierstokes.py" and  "python3 navierstokes.py" successfully.
Some details of the installation in our cluster:
  • Debian 11 (bullseye)
  • mkl from non-free Debian packages "intel-mkl" etc
  • occ from Debian packages "libocct-data-exchange-dev libocct-draw-dev occt-misc libxi-dev libxi6"
  • my version: NETGEN-6.2.2301-41-ga0b9dca2, but the colleagues may use more recent checkouts.
  • cmake call without occ: 
    Code:
    cmake -DUSE_MPI=ON -DUSE_MKL=ON -DMKL_INCLUDE_DIR=/usr/include/mkl/ -DCMAKE_INSTALL_PREFIX=...
  • cmake call with occ: 
    Code:
    cmake -DUSE_OCC=ON -DUSE_MPI=ON -DUSE_MKL=ON -DMKL_INCLUDE_DIR=/usr/include/mkl/ -DCMAKE_INSTALL_PREFIX=...
I did not notice any obviously relevant differences in the two versions of the file: CMakeCache.txt.
I did not notice any obviously relevant differences comparing the linking commands in the output of make in some verbose mode (make VERBOSE=1) for the two versions.

Do you have some idea/any advice for us how to fix the problem?

Best regards,
Guenther
 
Last edit: 11 months 4 weeks ago by go. Reason: added NETGEN version
More
11 months 4 weeks ago #4804 by matthiash
Replied by matthiash on topic occ and Pardiso error
Hi Günther,

Thanks for the detailed bug report. I managed to reproduce your issue exactly as you stated ( happens only with OCC ). FYI: I used this docker build to trigger the bug (not using debian myself): 
github.com/mhochsteger/ngsolve_docker_compose_debian

I will let you know, when I have an update/workaround/idea whats wrong here.

Best,
Matthias
More
11 months 4 weeks ago #4805 by matthiash
Replied by matthiash on topic occ and Pardiso error
First workaround is to set the environment variable MKL_THREADING_LAYER to gnu:
export MKL_THREADING_LAYER=gnu

Best,
Matthias
  • go
  • New Member
  • New Member
More
11 months 4 weeks ago #4807 by go
Replied by go on topic occ and Pardiso error
Hi Matthias,

I can confirm that the suggested setting fixes the problem.
Thanks a lot for the quick solution and the great support.

Best regards,
Guenther
 
Time to create page: 0.130 seconds