5
$\begingroup$

I have read different approaches on how to solve pdes in parallel which are discretized using finite element method. For example:

  1. Non-overlapping domain decomposition approach as mentioned in https://imsc.uni-graz.at/haasegu/Papers/Douglas-Haase-Langer/textbook.pdf at chapter 5.2 . Each process works on each own domain and the solution vector has a consistent storage while right hand sides, residuals and stiffness matrix has an additive storage.

  2. Distribute the mesh into N parts. Each processor has information about it's own sub-domain plus a ghost layer (Global solvers approach).

What are the differences between these two methods, pros and cons? Which parallelization method is used by FEM softwares?

$\endgroup$
1
  • $\begingroup$ I asked a related question a few years ago; it doesn't answer your question directly but you might find the answers interesting. $\endgroup$ – Daniel Shapero Jan 13 at 2:23
6
$\begingroup$

Domain decomposition was developed in the late 1990s and early 2000s because it allowed the re-use of sequential PDE solvers: You only have to write a wrapper around it that sends the computed solution to other processors, receives other processors' solutions, and uses these as boundary values for the next iteration. This works reasonably well for the small numbers of processors that were used at the time (a few dozen to at most a few hundred), but the approach does not perform well with large numbers of processors.

The approach almost universally used today is the second method you outline, where we think of the mesh and the linear system as one global one; it just happens to be stored in a way that distributes the data to many processors. In other words, we don't decompose the problem into smaller problems, we just decompose the storage of the data associated with the one global problem. This has required a lot of software development in libraries such as PETSc, Trilinos, libMesh, or the deal.II project which I co-lead. But, on the upside, this perspective leads to methods that can be efficiently solved, and as a consequence, they have largely supplanted domain decomposition methods in the last fifteen or so years.

$\endgroup$
4
  • $\begingroup$ Thank you for your response. Can you provide any documentation regarding second method? Since in acedemic level I only went through method one $\endgroup$ – spyros Jan 13 at 14:52
  • $\begingroup$ @spyros: What specifically? If you see the discretization as of one global mesh and linear system, then there is no new mathematics you need to develop. There are lots of parallel algorithms necessary for dealing with distributed data structures, however. $\endgroup$ – Wolfgang Bangerth Jan 13 at 15:19
  • $\begingroup$ I see. The already available libraries can do the work for me $\endgroup$ – spyros Jan 13 at 15:24
  • 1
    $\begingroup$ Yes, there are half a dozen libraries out there than can easily solve problems on 100,000 processors. That should be good enough for most applications :-) $\endgroup$ – Wolfgang Bangerth Jan 14 at 20:02

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.