Open ChessMastery opened 6 days ago
I saw that no files are written to the temporary out-of-core directory when using mingw-mumps and when using intel-compiled-mumps they are written. So it may be related with different file path slashes syntax in Unix and Windows.
Description / Steps to reproduce the issue
Here is my source code in C++ to call MUMPS attached in the text file (can be easily modified to C language by replacing "static_cast" by "(type)").
main_cpp.txt
When applying out-of-core (or OOC) mode by setting id.ICNTL(22)=1, the solver writes NaNs into the solution vector in the solve phase (id.job=3). In-core (or IC) mode works fine, lets say on matrix cfd2 from SuiteSparse collection it computes solution with 1e-13 relative residual. The residual after factorization phase (id.job = 2) is same in IC mode and OOC mode, that is why I think the problem may be in solve phase (matrix factorization may be wrong too though, I have not looked on internal matrix factors yet). Exactly the same main function code (with slightly different #include headers) works fine in OOC mode with MPI-free MUMPS compiled from this repo https://github.com/scivision/mumps with cmake, ninja and Intel LLVM C++ and Fortran compilers (Intel MKL BLAS/LAPACK used as well).
I use static library libmumps-dto.dll.a with about 7 necessary dlls, though I tried copying all the dlls from mingw64/bin into executable file directory and things did not change. Small examples with matrix size=2 or 10 works fine with id.ICNTL(22)=1, but I don't think OOC features are really used there. Can someone please try to use OOC mode with mingw-w64-x86_64-mumps and matrix size big enough (e. g. n=45000 at least)? I also provide a SuiteSparse collection file reader that converts symmetric real matrices into CSR format used in my call-mumps code:
SuiteSparseHB_to_CSR_sym_cpp.txt
Expected behavior
Expected behaviour: mingw-w64-x86_64-mumps should compute solution with relative residual about 1e-13 for cfd2 matrix from SuiteSparse collection (it fails on other test cases as well except small matrices n=2 and n=10 I tested).
Actual behavior
mingw-w64-x86_64-mumps writes NaNs into the solution vector on solve phase.
Verification
Windows Version
Windows 10 Pro 22H2
MINGW environments affected
Are you willing to submit a PR?
No response