1
$\begingroup$

Which is the best approach to solve a PDE in parallel:

1.To split the mesh the mesh in N parts and every processor works on its own part or

2.To take the global linear system Ax=b and solve it in parallel

$\endgroup$
1
  • $\begingroup$ Either approach can be better — or they can be equivalent. It depends on how you discretize and how you parallelize. $\endgroup$ Commented Apr 22, 2020 at 9:07

1 Answer 1

4
$\begingroup$

At some point, even processors working on their own of course have to communicate their work somehow. Your approach 1 then naturally leads to a class of methods that are called "Domain Decomposition" (DD) where each processor (repeatedly) solves problems that correspond only to the cells it "owns".

The second approach of course also has to split the mesh somehow because the linear system $Ax=b$ does not magically appear out of thin air, but needs to be constructed and that is also done by partitioning the mesh.

My take is that over the past 20 years, we've learned that approach 2 is the way to go. DD methods had a good run in the late 1990s and early 2000s, but when software came around that allowed for efficient handling and solving of globally distributed linear systems, that approach won out (for what I think are very good reasons). So go with the second method.

$\endgroup$
5
  • $\begingroup$ I should add that there are certainly people who believe that DD is the way to go. I'm just thinking that that faction is eventually going to die out, not because the idea was stupid to begin with, but simply because we've found a better approach. $\endgroup$ Commented Apr 22, 2020 at 13:59
  • $\begingroup$ I think there is also a huge drawback with DD when adaptive refinment is on the table.Correct me if I am wrong $\endgroup$
    – spyros
    Commented Apr 22, 2020 at 15:52
  • $\begingroup$ I want to expend on Wolfgang's answer. You should definitely use approach 2. However, you should have a holistic approach. Do not try to assemble the matrix $A$ on a single process and distribute. If you check popular packages like hypre, PETSc, MFEM, ngsolve, fenics, ..., all of them distribute the mesh, assemble the local matrices and then assemble global matrix. See the figure at mfem.org/performance . Then you can natively solve the problem $Ax=b$ in parallel. $\endgroup$ Commented Apr 23, 2020 at 2:28
  • $\begingroup$ Another comment is that domain decomposition methods are proven to be incredibly effective for some set of problems and I am not aware of any "one size fits all" better approaches. DD methods are effective preconditioners rather than solvers, IMO. For example, BDDC preconditioner works well for DG discretizations and Mortar FEMs. But I wouldn't suggest it if you are solving the Stokes problem with Taylor-Hood discretization. Better bet would be either to use a monolithic multigrid method or a block diagonal preconditioner. $\endgroup$ Commented Apr 23, 2020 at 2:34
  • $\begingroup$ @spyros -- yes, that too. If you adaptively refine one subdomain, you create an imbalance. But that's of course no different than if you consider the mesh as a whole, partitioned to processors: If you adaptively refine, you have to re-partition. $\endgroup$ Commented Apr 23, 2020 at 2:40

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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