[Trilinos-Users] IFPACK preconditioners reordering

Erik Boman egboman at sandia.gov
Thu Feb 18 16:47:10 EST 2016


Danielle,

After talking to Andrew I may have misunderstood your question. Assuming 
you wish to solve a large problem in parallel, there are two issues to 
consider:

1) How to distribute rows among processors (partitioning)
2) How to order within each processor (local ordering)

I was addressing (2) but Andrew made a good point that (1) is probably 
more important for overall performance and his sample code will help by 
partitioning using Isorropia/Zoltan. The default local ordering in 
Ifpack is RCM, which is reasonable for PDEs, so less to gain by changing 
that.

Please let us know if you have further questions.

Erik

On 02/18/2016 02:18 PM, Erik Boman wrote:
> Hi Andrew,
>
> Thanks, that may work but it's not recommended since the Partitioner 
> just partitions the matrix into parts and the local ordering within 
> each part is not guaranteed. It was meant to redistribute for better 
> load balance. There is an Isorropia::Epetra::Orderer class for reordering.
>
> Erik
>
> On 02/18/2016 02:01 PM, Bradley, Andrew Michael wrote:
>>
>> Hi Danielle,
>>
>>
>> Not sure if this is of any use, but aeons ago I wrote some code that 
>> reordered the matrix globally before then solving with Aztec using 
>> Ifpack. The Isorropia part looks like this:
>>
>>
>>     Teuchos::ParameterList iso_list;
>>     // Fill in the list.
>>     partitioner = Teuchos::rcp(new 
>> Isorropia::Epetra::Partitioner(&A->Graph(), iso_list));
>>     rd = rcp(new Isorropia::Epetra::Redistributor(partitioner));
>>     A_rd = rd->redistribute(*A.get());
>>     x_rd = rd->redistribute(x);
>>     b_rd = rd->redistribute(*b.get());
>>
>>
>> Then the _rd quantities are used in the subsequent 
>> solver/preconditioner setup and solve.
>>
>>
>> Andrew
>>
>>
>>
>> ------------------------------------------------------------------------
>> *From:* Trilinos-Users <trilinos-users-bounces at trilinos.org> on 
>> behalf of Erik Boman <egboman at sandia.gov>
>> *Sent:* Thursday, February 18, 2016 1:47 PM
>> *To:* dcmaddix at stanford.edu
>> *Cc:* trilinos-users at trilinos.org
>> *Subject:* [EXTERNAL] Re: [Trilinos-Users] IFPACK preconditioners 
>> reordering
>> Danielle,
>>
>> In general RCM has been found to be the best ordering for incomplete 
>> factorizations, so other orderings may not help you.
>> Still, to clarify the status in Trilinos:
>>
>> - Ifpack supports both RCM and Metis (directly without Zoltan, 
>> possibly only older versions) so you could try nested dissection 
>> easily that way.
>> - Ifpack ordering only works in parallel as it is embedded within 
>> Additive Schwarz (known bug).
>> - Isorropia can compute orderings using Zoltan but not sure how to 
>> pass that to Ifpack. (I have never done it.)
>> - Going forward, Ifpack2 will use Zoltan2 for reordering and adding 
>> more orderings to Zoltan2 is work in progress.
>>
>> Hope this helps.
>>
>> Erik
>>
>> On 02/18/2016 01:08 PM, Heroux, Michael A wrote:
>>> Danielle,
>>>
>>> Ifpack supports only Reverse Cuthill-McKee (RCM) and Metis reorderings.
>>>
>>> The Isorropia package provides an Epetra interface to Zoltan, and 
>>> does have orderings based on ParMetis and PT-Scotch, but I don’t 
>>> know of a way to get the orderings to work the Ifpack.  Perhaps one 
>>> of the Isorropia developers could confirm.
>>>
>>> Mike
>>>
>>> From: Trilinos-Users <trilinos-users-bounces at trilinos.org 
>>> <mailto:trilinos-users-bounces at trilinos.org>> on behalf of Danielle 
>>> Catherine Maddix <dcmaddix at stanford.edu <mailto:dcmaddix at stanford.edu>>
>>> Date: Wednesday, February 17, 2016 at 7:24 PM
>>> To: Trilinos Users <trilinos-users at trilinos.org 
>>> <mailto:trilinos-users at trilinos.org>>
>>> Subject: [EXTERNAL] [Trilinos-Users] IFPACK preconditioners reordering
>>>
>>> Hello,
>>>
>>>
>>> I was using the IFPACK pre conditioners, with particular interest in 
>>> IC. I was wondering if there were any built-in Trilinos reordering 
>>> schemes that could be done for banding on my matrix in the 
>>> preconditioner calculation.  I know that ILUT and ILUt uses RCM by 
>>> default. Are there other reordering options, such as nested 
>>> dissection, which uses Zoltan?
>>>
>>>
>>> Thank you,
>>>
>>> Danielle Maddix
>>>
>>>
>>>
>>> _______________________________________________
>>> Trilinos-Users mailing list
>>> Trilinos-Users at trilinos.org
>>> https://trilinos.org/mailman/listinfo/trilinos-users
>>
>
>
>
> _______________________________________________
> Trilinos-Users mailing list
> Trilinos-Users at trilinos.org
> https://trilinos.org/mailman/listinfo/trilinos-users

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://trilinos.org/pipermail/trilinos-users/attachments/20160218/f11672d0/attachment.html>


More information about the Trilinos-Users mailing list