The PETSc interface for MatMatSolve() for SuperLU_Dist does directly use the 
multiple right hand side solver of SuperLU so perhaps you can use this as it 
will be faster than one solve at a time.

   As Hong mentioned, MUMPS still requires centralizing the entire right hand 
side to one process before starting the linear solver. This is why we don't 
support multiple right hand sides directly with MUMPs, that would require too 
much memory on the first process. When MUMPS supports distributed right hand 
side then we'll add support for directly using their multiple right hand side 
solver.

    Barry


On Dec 12, 2011, at 3:10 AM, Alexander Grayver wrote:

> Hi Barry,
> 
> Thanks for answer. I should have asked about that from the very beginning 
> actually.
> I get 2 times decrease in performance with 20 RHS, I can imagine how slow it 
> will be when I will use thousands of them,
> moreover it will require a lot of memory to store them as a dense matrix.
> 
> On 11.12.2011 18:50, Barry Smith wrote:
>> On Dec 11, 2011, at 9:29 AM, Alexander Grayver wrote:
>>    One by one
> 
> I'm wondering why? All main direct packages like MUMPS, SuperLU_DIST, PaSTiX 
> support multiple RHS.
> 
>>    We do not handle a sparse right hand side.
> 
> Since I already transferred my code to PETSc anyway, my question now if it's 
> possible to implement sparse multiple RHS and solve them simultaneously?
> Something like MatMatSolveSparse. I would implement it myself, the question 
> is there a way to integrate it into PETSc as a patch or something like that?
> 
> Regards,
> Alexander

Reply via email to