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