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

Convergence of ILU preconditioner with MPI and using IJ interface #998

Open
valonbb opened this issue Oct 30, 2023 · 2 comments
Open

Convergence of ILU preconditioner with MPI and using IJ interface #998

valonbb opened this issue Oct 30, 2023 · 2 comments

Comments

@valonbb
Copy link

valonbb commented Oct 30, 2023

I am mainly using Krylov based solvers with ILU preconditioner and IJ interface. I have observed that for some input matrices,
there is a convergence issue when more than one mpi processes have been invoked. On the other hand, under the same conditions,
this seems to be more robust under the sequential operation - one processor. I have tried adjusting preconditioner parameters such as dropping threshold, level of fill and ilu type, but still did not have much luck with this. Is this something one would expect given that implementation of ILU is based on Domain decomposition framework and Schur complement? Would any better matrix partition help with this or any idea where things may have gone wrong? In contrast, it all works fine when PILUT and EUCLID preconditioner have been used.

Thanks a lot for all the great work you are doing to keep hypre going.

@oseikuffuor1
Copy link
Contributor

@valonbb which options of ILU are you using? What you are seeing may not be unusual, particularly for the block Jacobi options. In this case, using options > 1 (such as 10, 11, 30, 31 ) for the ILU type could be better.

@valonbb
Copy link
Author

valonbb commented Oct 30, 2023

Hi @oseikuffuor1,
Thanks a lot for your reply.

Actually, I have experimented with most of the ILU options. It is true that for some cases, options you have mentioned lead to a better convergence, but in my case I do not see that being applicable for any given number of processors. For example, a given 10 by 10 matrix with considerably well conditioned number, HYPRE_ILU works well for (number of processors - np) np = 1, 2 and ilu.type = {1, 10, 11, 31}, however when np = 3, result does not converge at all. Does this have to do with the way matrix is partitioned across the processors or what would be the explanation of this different behaviour with varying number of mpi processes (np)?

Thanks a lot for all your help - very much appreciate your time to look at this.

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

No branches or pull requests

2 participants