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

Fix icb_parpack_c and icb_parpack_cpp to split the problem size across MPI processes #423

Merged
merged 7 commits into from
Aug 12, 2023

Conversation

FabienPean
Copy link
Contributor

I had a bit of spare time and felt like doing a bit of archeology, so I went digging into parpack issues raised in #414

The story in short is that all tests were only succeeding with an identical seed array was set for all processes. Noticeably, the error occurred only in icb_parpack_c/cpp and not in Fortran parpack tests indicating a discrepancy in the test.

The issue is that the problem was not split across processes in the test file before calling to PARPACK. This effectively made all processes computing the whole problem and incurring weird behavior due to each process having a different initial vector but trying to share data through MPI.

Changes are contained in the last commit d53f32a built atop #414

@fghoussen
Copy link
Collaborator

@FabienPean: thanks! Indeed I think you found the root cause of all this.
I'll have a closer look by the week-end, but, it sounds right!

@fghoussen
Copy link
Collaborator

@FabienPean: could you add a bullet point in the FAQ of the README.md that would say something like

  - Using PARPACK, I get incorrect eigen values.

    Make sure each MPI processor handles a subpart of the eigen system (matrices) only.
    ARPACK handles and solves the whole eigen problem (matrices) at once.
    PARPACK doesn't: each MPI processor must handle and solve a subpart of the eigen system (matrices) only (independently from the other processors).

@FabienPean
Copy link
Contributor Author

The comment to the FAQ has been added, with an extra hint on where to find examples how to do it.

@fghoussen fghoussen merged commit c18d153 into opencollab:master Aug 12, 2023
11 checks passed
@fghoussen
Copy link
Collaborator

@szhorvat, @FabienPean: 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.

3 participants