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.

Reply via email to