(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.


> several processors. And as the linear systems are notSo I can
> potentially achieve further speed up, if each core does the three
> matrix-vector products for one i at the same time. However when I did
> some tests for that, I surprisingly found close to no speed up.

I'm not surprised that you don't see any performance gains in
parallellizing only the matrix-vector products, after all the
factorization is the heavy task with higher complexity (in terms of
n_dofs).


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

Reply via email to