Race condition with OpenBLAS
I've been tracking down a strange issue with multithreading with PaStiX and the use of OpenBLAS. In my standalone script testing a SPD matrix PaStiX seems to work without issue. However, using OpenBLAS causes explosions. Reproduction on my machines is fairly straightforward (Fedora 30 with AMD / Intel processors).
- Given matrix and right hand side sparse_matrix.mtx right_hand_side.mtx
- Everything seems OK check_matrix.py
- My ghetto standalone script pastix_test.cpp
- Compile with
g++
and link-lpastix -lspm
and run - Compile with
g++
and link-lopenblas -lpastix -lspm
and run
Step 4 matches the results from step 2. Step 5 returns garbage (NaN / incorrect results).
Is this a known issue with OpenBLAS (v0.3.7) or the manner in which PaStiX calls it? MUMPS pulls in OpenBLAS without issue (although only uses it in a single threaded fashion...).
Thoughts?
Potentially related to #43 (closed).