[Trilinos-Users] amesos + superlu_dist weirdness

Nico Schlömer nico.schloemer at ua.ac.be
Fri Jun 26 05:57:15 MDT 2009


Okay, the issue is that within Amesos_Superludist::Solve() doesn't take care 
of the case where the the function is called with one processor, *and* local 
and global indexing is not the same.

The function I provided earlier in this thread generates the map

=================== *snip* ===================
         MyPID           Local Index        Global Index  
             0                 0                 0    
             0                 1                 2    
             0                 2                 1    
             0                 3                 3  
=================== *snap* ===================

and subsequently, the values of the indices 1 and 2 are exchanged in the 
computed solution.
I had a closer look at  Amesos_Superludist::Solve() and suspect we'd need 
something like

=================== *snip* ===================
%% starting from line 776
  if (Redistribute_) 
  {
    ResetTimer(0);
    vecX->Export(*vec_uni, Importer(), Insert);
    VecRedistTime_ = AddTime("Total vector redistribution time", 
VecRedistTime_, 0);
- }
+  } else
+  { 
+    // make sure to return a vector with proper global indexing
+  }
=================== *snap* ===================

Not sure how to do that in a clean way, though. Maybe Michael could take a 
quick peek at that..

Cheers,
Nico


On Wednesday 24 June 2009 15:12:46 Daniele Avitabile wrote:
> Hi Nico,
> I confirm that your test doesn't work with Superludist, whereas it works
> for KLU.
>
> It is rather strange, in that, if I run the attached example, that is
> equivalent to yours, both Superludist and KLU work fine.
>
> I've tested this with Trilinos 9.0.0.
>
> Hope it helps.
>
> Daniele
>
> On Wed, Jun 24, 2009 at 12:34 AM, Nico Schlömer 
<nico.schloemer at ua.ac.be>wrote:
> > Hi all,
> >
> > I'm trying to get Amesos to work with SuperLU_DIST here, and things don't
> > work
> > out so well. What I have is a C++ source that contructs a simple test
> > problem,
> > and I can solve this with Amesos_Klu and Amesos_Superlu.
> >
> > When using Amesos_Superludist, though, the solver runs fine, and just
> > returns
> > wrong results. :/
> >
> > Using Superlu_DIST 2.0 here, and observed the same thing for 2.3. This is
> > tested with trilinos 9.0.3 as well as the latest pre-10.0 version.
> >
> > It may very well be that I'm doing something wrong in the code (I
> > appended the
> > C++ source), but as mentioned, SuperLU (no dist) and the built-in Klu
> > work fine.
> >
> > Any clues at all? Cheers,
> > Nico
> >
> >
> >
> >
> > _______________________________________________
> > 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