On 5/15/26 09:04, Victor Eijkhout wrote:
**
1. I thought multifrontal solvers are designed for parallelism. But anyway,
since this is external to Deal, it wouldn't use your TaskFlow threads.
*In principle*, multifrontal methods could use threads. In practice, it isn't
all that easy. In essence, each front eats its way through the domain until it
hits another front. At the end, the process stops when no front can move any
further into as-yet unprocessed parts of the domain, and then you have to
solve a dense linear system on those nodes that are parts of all of those
stalled fronts. The more fronts you have, the bigger the dense system will
typically be, and that limits the degree of parallelism that's efficient to
use. The dense linear system is also difficult to solve in parallel. With
large linear systems (say, 10^8 or more), you can probably scale this to 1000
parallel threads/processes as MUMPS does with MPI, for example. But for
smaller systems that you'd typically have on a single machine, say 10^6
unknowns, I would be surprised if you could scale this to more than a dozen or
two threads.
Either way, UMFPACK does not support parallelism. Since you're in Texas, I
imagine you know Tim Davis and could petition him to implement threading in
UMFPACK :-)
2. So BlockJacobi doesn't use parallel tasks either? I thought I was seeing
thread activity in my run.
Not that I saw. I don't think it would actually be difficult to implement.
Ok, so how do I get a parallel preconditioner of higher quality than Jacobi?
Or since this is a time-stepping method, any parallel solver.
Should I use the Trilinos or PETSc wrappers and implicitly use MPI, even
though I'm on a single node?
If you really care about scaling in parallel, the only efficient solvers use
MPI. That's probably more due to how humans reason about writing their
software than for fundamental reasons, but all truly scalable PDE solvers use
MPI. On the other hand, that *really* gives you scalability: Programs such as
step-40 or step-32 have been run with very good efficiency to 10,000s of MPI
processes if you have sufficiently many unknowns (say, 10^5 times the number
of MPI ranks). The preconditioners used in such contexts are either algebraic
or geometric multigrid, both of which perform well to very large problem sizes
(>10^9).
Best
W>
--
The deal.II project is located at http://www.dealii.org/
For mailing list/forum options, see
https://groups.google.com/d/forum/dealii?hl=en
---
You received this message because you are subscribed to the Google Groups "deal.II User Group" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion visit
https://groups.google.com/d/msgid/dealii/70dfa2c2-3cf2-46a7-80a7-ca87d9ad5ce3%40colostate.edu.