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

Rework iparm setting #505

Merged
merged 6 commits into from
Jun 5, 2024
Merged

Conversation

j-fu
Copy link
Contributor

@j-fu j-fu commented May 31, 2024

Checklist

  • Appropriate tests were added
  • Any code changes were done in a way that does not break public API
  • All documentation related to code changes were updated
  • The new code follows the
    contributor guidelines, in particular the SciML Style Guide and
    COLPRAC.
  • Any new documentation only uses public API

Additional context

This tries to fix #497

Pardiso defaults for highly indefinite matrices.

This commit essentially reverts #89 and introduces a new
kwarg "cache_analysis" (default false) to PardisoJL() which, if true would
lead to the behaviour of #89.

Also, allow the user to overwrite all iparms modified by
the extension besides of 12.

Fixes also a problem found by @chmerdon

j-fu added 3 commits June 1, 2024 00:14
Pardiso defaults for highly indefinite matrices.

This commit essentially reverts SciML#89 and introduces a new
kwarg "cache_analysis" (default `false`) to PardisoJL() which, if true would
lead to the behaviour of SciML#89.

Also, allow the user to overwrite all iparms modified by
the extension besides of 12.
Copy link

codecov bot commented May 31, 2024

Codecov Report

Attention: Patch coverage is 54.16667% with 11 lines in your changes missing coverage. Please review.

Project coverage is 62.72%. Comparing base (270b56d) to head (a339509).

Files Patch % Lines
ext/LinearSolvePardisoExt.jl 52.17% 11 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main     #505      +/-   ##
==========================================
+ Coverage   62.71%   62.72%   +0.01%     
==========================================
  Files          29       29              
  Lines        2229     2235       +6     
==========================================
+ Hits         1398     1402       +4     
- Misses        831      833       +2     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

@ChrisRackauckas
Copy link
Member

Looks like some of the Pardiso tests are failing from this?

j-fu added 3 commits June 4, 2024 18:59
* iparm 12 -> 2 (transposed vs conjugate)
* iparm 4 instead of 3 for reltol
Panua Pardiso seems to depend on calling pardisoinit first.
Otherwise Panua Pardiso may segfault during iteration for complex system
@j-fu
Copy link
Contributor Author

j-fu commented Jun 4, 2024

Well, they did fail on master before...
In fact, now I fixed the transpose flag for MKL Pardiso.
Tested also for Panua (formerly project) pardiso ( see Pardiso.jl 0.5.7), which appears to be a bit brittle with iterative solution of complex problem when verbosity is on.

@j-fu
Copy link
Contributor Author

j-fu commented Jun 4, 2024

Once this PR is merged I would prepare another one which should allow to choose form both pardiso flavors from the code. Now, just Panua is chosen over MKL if it is installed.

@ChrisRackauckas ChrisRackauckas merged commit 1f8eb0d into SciML:main Jun 5, 2024
13 of 16 checks passed
@ChrisRackauckas
Copy link
Member

Thanks!

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

Successfully merging this pull request may close these issues.

LinearSolve with PardisoJL() doesn't return the expected result
2 participants