[Trilinos-Users] SuperLU_dist, KLU and reordering
Jonas Thies
J.Thies at rug.nl
Mon Dec 1 01:30:17 MST 2008
Hi David, Erik,
thanks for your advice, maybe I'll contact some sparse direct people
like the SuperLU developers. My matrix is a 'sparsified'
Schur-complement used to precondition a Navier-Stokes solver.
I guess the parallel solvers don't perform too well because it is so
small (20k rows).
MUMPS and all its dependencies are pre-installed on our machine, and
Amesos has obviously recently been updated, so I'll play with that, too.
regards,
Jonas
David Day wrote:
> Hi Jonas,
> There is no simple answer. I recommend raising the issue with the
> SuperLU_Dist developers:
> http://crd.lbl.gov/~xiaoye/SuperLU/
> I would contact them with a description of the problem, answering the
> following questions. Is your matrix symmetric? If so, is it positive
> definite? What, approximately, are the number of unknowns and the
> number of nonzeros? What is the application? Is the matrix a
> discretization of a differential equation? of a partial differential
> equation? What version of SuperLU_Dist are you using?
>
> Many people in your situation have re-considered iterative linear
> solvers.
>
> Good luck,
> David Day
>
>
>
> On Thu, 2008-11-27 at 05:54 -0700, Jonas Thies wrote:
>> Hi,
>>
>> can someone give me a hint on SuperLU_Dist in Amesos?
>>
>> One of my systems is currently solved sequentially using KLU,
>> which is very efficient for some reason. I'd like to do it in parallel
>> now, but SuperLU seems a lot slower even sequentially.
>> So I was wondering if KLU does some reordering by default which SuperLU
>> doesn't. I'm using the default settings for both solvers, which flags
>> are worth trying? Or is there a fundamental algorithmic difference that
>> could make KLU about ten times faster than SuperLU for a particular
>> sparse nonsymmetric real matrix?
>> Finally I noticed that SuperLU_dist always seems to distribute the
>> matrix even if I pass in a distributed matrix, is that intended or a
>> wrong parameter setting?
>> Is it a good idea to use SuperLU_dist or are other parallel sparse
>> solvers in Amesos a better choice?
>>
>> thanks,
>> Jonas
>>
>> Heroux, Michael A wrote:
>>> Daniele,
>>>
>>> If I understand what you are doing, then one way to eliminate the extra
>>> copy of x values is to use View mode with the Epetra_Vector objects.
>>> You will still have overlappedXExtMap and xExtMap, and the
>>> corresponding vectors overlappedXExt and xExt. Furthermore, you would
>>> create overlappedXExt in the standard way. However, when you create
>>> xExt, you should pass in the pointer to the first value in
>>> overlappedXExt using View mode.
>>>
>>> If you do this, Epetra’s import function is smart enough to detect that
>>> all but the last value are the same address and it will not do a
>>> redundant copy.
>>>
>>> A further optimization would be to avoid the import, since you are
>>> really doing a broadcast. You could use the Broadcast() method on
>>> Epetra_Comm to send to all processors and pass a pointer to the end of
>>> overlappedXExt vector as the target buffer for the broadcast.
>>>
>>> I hope this makes sense.
>>>
>>> Mike
>>>
>>>
>>> On 11/24/08 6:53 AM, "Daniele Avitabile" <d.avitabile at gmail.com> wrote:
>>>
>>> Hi everybody,
>>>
>>> the solution to the PDEs I am solving is stored in an Epetra_Vector
>>> x, based on a certain linear Epetra_Map xMap. Now, I need to add an
>>> extra ODE to my system, defined on the boundary. At the present
>>> stage, whenever I want to compute the right-hand side of my PDE, I
>>> need to access a new "bordered" Epetra_Vector xExt, based on a new
>>> map Epetra_Map xExtMap.
>>>
>>> The problem is that, from each processor, I need access to the last
>>> component of xExt, the one on the boundary.
>>>
>>> The way I am doing this is
>>> 1. define an Epetra_Map overlappedXExtMap. All the GID of xExtMap
>>> are also contained in overlappedXExtMap, plus the last component of
>>> xExt is replicated on all processors.
>>> 2. define an importer with xExtMap as source and overlappedXExtMap
>>> as target
>>> 3. each time I evaluate the right-hand side of my equation, use the
>>> importer.
>>>
>>> I rely on the importer massively, because I also use it for printing
>>> purposes: I want to separate the solution in the interior of my PDE
>>> from the additional scalar component on the boundary.
>>>
>>> My questions:
>>> a. do you have a more efficient way to do this? It seems to me that
>>> I am copying a lot of unnecessary data, namely all the components
>>> relative to the GID of xEtxMap that are also in overlappedXExtMap.
>>> b. how does the importer Work? Does he really copy all the elements?
>>>
>>> Thanks in advance.
>>>
>>> Daniele
>>>
>>>
>>>
>>> ------------------------------------------------------------------------
>>>
>>> _______________________________________________
>>> Trilinos-Users mailing list
>>> Trilinos-Users at software.sandia.gov
>>> http://software.sandia.gov/mailman/listinfo/trilinos-users
>>
>> _______________________________________________
>> Trilinos-Users mailing list
>> Trilinos-Users at software.sandia.gov
>> http://software.sandia.gov/mailman/listinfo/trilinos-users
>
> _______________________________________________
> Trilinos-Users mailing list
> Trilinos-Users at software.sandia.gov
> http://software.sandia.gov/mailman/listinfo/trilinos-users
More information about the Trilinos-Users
mailing list