[Trilinos-Users] Komplex vs. Epetra_LocalMap

Przemysław Kłosiewicz przemyslaw.klosiewicz at ua.ac.be
Sat Oct 23 09:01:43 MDT 2010


Oh, I see. I didn't realize mixing different types of communicators could be a valid solution; I'll try that.
One thing though:
Suppose I create a vector v with a LocalMap, fill it with v.PutScalar(comm.MyPID()) and run it on two mpi nodes.
If I now do a cout << v the output suggests that I end up having two different vectors v: on node 0 it's a v full of zeros and on node 1 v is full of ones; thus not identical.
Am I actually creating two different vectors or is it one and the same vector which just happens to be out of sync somehow?

Thanks,
Przemek.

On 23 Oct 2010, at 16:26, Heroux, Michael A wrote:

> Przemek,
> 
> I think you want to create an Epetra_SerialComm object on each processor and
> then construct regular Epetra_Map objects using that comm object.  This will
> give you the independence you want.
> 
> LocalComm is intended to be used with data that is identical and replicated
> on each processor.
> 
> I hope this helps.
> 
> Mike
> 
> 
> On 10/23/10 7:49 AM, "Przemysław Kłosiewicz"
> <przemyslaw.klosiewicz at ua.ac.be> wrote:
> 
>> Dear all
>> 
>> I am solving a moderately sized complex linear system Ax = b using Amesos. In
>> order to obtain an equivalent real-valued formulation I use Komplex which
>> needs re(A), im(A), re(b), etc... separately.
>> As long as I use a regular Epetra_Map for these matrices & vectors all goes
>> well. However, for some well-defined reason I don't want these matrices to be
>> distributed so I tried using an Epetra_LocalMap (or an Epetra_Map with
>> NumGlobalElements = NumMyElements).
>> This is where Komplex fails: During the creation of a Komplex_LinearProblem
>> from matrices created with such maps I get the following exception:
>> 
>> /home/pklosiew/trilinos-10.6.0-Source/packages/komplex/src/Komplex_LinearProbl
>> em.cpp:291:
>> Throw number = 1
>> Throw test that evaluated to true: KomplexMatrix_->InsertGlobalValues(Row,
>> NumIndices, Values, Indices)<0
>> 
>> This only happens when running with mpi and where the number of processors >
>> 1.
>> 
>> I have the impression Komplex tries to create double-sized distributed maps
>> from the original map, even though they should stay local.
>> Is this a bug, a feature or am I misusing the Epetra_LocalMap?
>> 
>> Thanks,
>> Przemek.
>> 
>> 
>> (ps: the reason why I don't want Ax=b to be distributed is that I need to
>> solve these systems for a range of parameters p, as in: A(p)x = b(p) which can
>> all be done in parallel with minimal communication.)
>> 
>> 
>> --
>> Przemyslaw Klosiewicz
>> PhD Student @ CoMP Research Group
>> Department of Mathematics and Computer Science, University of Antwerp
>> Middelheimlaan 1, 2020 Antwerp, Belgium
>> 
>> Office (G2.07):  T (+32) 3 265 32 80, F (+32) 3 265 37 77, E
>> Przemyslaw.Klosiewicz at ua.ac.be
>> Home: T (+32) 497 24 18 82, E przemek.klosiewicz at gmail.com, Skype
>> przemek_klosiewicz
>> 
>> 
>> 
>> 
>> 
>> 
>> _______________________________________________
>> Trilinos-Users mailing list
>> Trilinos-Users at software.sandia.gov
>> http://software.sandia.gov/mailman/listinfo/trilinos-users
>> 
> 
> 

--
Przemyslaw Klosiewicz
PhD Student @ CoMP Research Group
Department of Mathematics and Computer Science, University of Antwerp
Middelheimlaan 1, 2020 Antwerp, Belgium

Office (G2.07):  T (+32) 3 265 32 80, F (+32) 3 265 37 77, E Przemyslaw.Klosiewicz at ua.ac.be
Home: T (+32) 497 24 18 82, E przemek.klosiewicz at gmail.com, Skype przemek_klosiewicz








More information about the Trilinos-Users mailing list