I am currently trying to parallelize the incompressible flow solver code. However, when I run the code I realise that the parallel code takes much longer time than sequential code to finish one iteration.

The mesh is partitioned by ParMetis so the work load is balanced. I also timed my code, the main time-consuming part is the linear solver part. The method I used is the conjugate gradient and jacobi as the preconditioner from Petsc Krylov methods.

So I am wondering if there is any appropriate method and preconditioner for solving linear algebra in parallel?



There are many methods for solving linear systems in parallel, but fundamentally what works and what doesn't depends crucially on the properties of the linear system you are trying to solve. Among those, the Jacobi preconditioner is about the worst you can choose.

I've summarized what I know about this topic in lectures 34-38 and 41.75 here: http://www.math.colostate.edu/~bangerth/videos.html


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.