(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
