[Trilinos-Users] amesos + superlu_dist weirdness
James Willenbring
jmwille at sandia.gov
Fri Jun 26 07:14:10 MDT 2009
Nico,
Thanks for this info. I have submitted a bug.
Jim
-----Original Message-----
From: trilinos-users-bounces at software.sandia.gov
[mailto:trilinos-users-bounces at software.sandia.gov] On Behalf Of Nico
Schlömer
Sent: Friday, June 26, 2009 6:57 AM
To: Daniele Avitabile
Cc: Heroux, Michael A; trilinos-users at software.sandia.gov
Subject: Re: [Trilinos-Users] amesos + superlu_dist weirdness
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
_______________________________________________
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