Hi,

On 02/15/2012 03:43 PM, Matthias Maier wrote:
(replying to list)

Am 15. Feb 2012, 14:03 schrieb Johannes Reinhardt<[email protected]>:

Hi,

On 02/15/2012 01:51 PM, Matthias Maier wrote:
Hello,

Am 15. Feb 2012, 13:27 schrieb Johannes Reinhardt<[email protected]>:

Hello everybody,

for one part of a calculation I have to solve several (about 6-15)
linear systems of the form

M x_i = L_i b

M is the Mass matrix, the Matrix L_i is the discretisation of an
integral operator and is therefore denser than M. The L_i can take
several hundert MB each in some cases. The size of the problems is
moderate, ranging from several ten to few hundred thousand dofs.

This step takes a significant part of the time Now I was thinking
whether it might be possible to do make better use of the 4 cores of
my computer. As these linear systems are independent, it should be
possible to solve them  in parallel. I do not intend to distribute
this calculation to multiple machines. However I will get access to a
machine with 12 cores in the next few weeks.
If the mass Matrix M doesn't change (as indicated by your subscripts),
why not doing a direct LR-decomposition of it?

Then solving the system for a specific L_i basically boils down to three
matrix-vector-multiplications.

Could you test whether one of the direct solvers in lac/sparse_direct.h
suits your needs?
Thank you for your reply.

For not to large problem sizes this is what I already do at the
moment, using the SparseDirectUMFPack solver.

However, if I understand correct, the Deal.ii Linear Algebra Classes
(SparseMatrix, SolverCG, SparseDirectUMFPACK) do not make use of
SpareDirectUMFPACK is indeed not parallel. However, SolverCG is
parallelized via threads.

I don't know which of the other direct solvers provide a factorization
and are parallel. Mumps should be - but unfortunately there is no
interface for the factorization in deal.II

Maybe someone with more insight in this topic can give some hints.
I was not aware that SolverCG is using multiple threads. I even briefly scanned the source code, but could not spot anything that looked like it. Also the Documentation doesn't mention. But that would explain basically everything I observe in my tests.

The nonparallel nature of SparseDirectUMFPACK is not a problem, as I can factorize M once and use it for all 6-15 systems in every step (I did not mention that I have a time dependent problem), so this pays off for sure.

Thank you very much

_______________________________________________
dealii mailing list http://poisson.dealii.org/mailman/listinfo/dealii

Reply via email to