Skip to content
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

mingw-w64-x86_64-mumps problem: writes NaN into the solution in solve phase if out-of-core mode is used #22599

Open
2 of 6 tasks
ChessMastery opened this issue Nov 20, 2024 · 1 comment
Labels

Comments

@ChessMastery
Copy link

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

  • MINGW64
  • MINGW32
  • UCRT64
  • CLANG64
  • CLANGARM64

Are you willing to submit a PR?

No response

@ChessMastery
Copy link
Author

ChessMastery commented Nov 20, 2024

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant