[Trilinos-Users] Error with Ifpack

Daniel Santos dsantosolivan at gmail.com
Fri Jul 20 05:13:41 EDT 2018


Hello,

First thank you for the different packages of trilinos, there have been a
huge help in our numerical work.

Right now, I am using Ifpack for constructing a preconditioner that I use
with the Belos solver and, in general, this works very nicely but there are
some cases where I have problems.
In cases where the matrix is ill-conditioned, the preconditioner builder
fails, this is ok and I know what to do about it when it happens.
The problem is that when I run it with several cores, some of them return
this kind of errors:
IFPACK ERROR -22, *****/ifpack/src/Ifpack_Amesos.cpp, line 230
IFPACK ERROR -22, *****/ifpack/src/Ifpack_AdditiveSchwarz.h, line 898
but some of then get stuck inside the Ifpack method and we cannot deal with
this error.

My code that I adapted from some example is this one :

Teuchos::ParameterList ifpackList;

Ifpack Factory;
std::string PrecType = "Amesos"; // incomplete LU
int OverlapLevel = 1;
RCP<Ifpack_Preconditioner> Prec = Teuchos::rcp( Factory.Create(PrecType,
&*A, OverlapLevel) );
assert(Prec != Teuchos::null);

ifpackList.set("fact: level-of-fill", 1);
ifpackList.set("schwarz: combine mode", "Add");

Prec->SetParameters(ifpackList);
Prec->Initialize();

Prec->Compute();

The code gets stuck in the Compute() function and this is the gdb trace of
the cores that don't exit this function:

#0  0x00007fffe6196553 in mca_btl_vader_component_progress ()
   from ******/lib/openmpi/mca_btl_vader.so
#1  0x00007ffff0c035bc in opal_progress ()
   from ******/lib/libopen-pal.so.40
#2  0x00007ffff4a4d1c5 in ompi_request_default_wait ()
   from ******/lib/libmpi.so.40
#3  0x00007ffff4aa0a24 in ompi_coll_base_barrier_intra_recursivedoubling ()
   from ******/lib/libmpi.so.40
#4  0x00007ffff4a620f7 in PMPI_Barrier ()
   from ******/lib/libmpi.so.40
#5  0x00007ffff6cbff07 in Epetra_MpiDistributor::DoPosts(char*, int, int&,
char*&) () from ******/lib/libepetra.so.12
#6  0x00007ffff6cc0b0c in Epetra_MpiDistributor::DoReverse(char*, int,
int&, char*&) () from ******/lib/libepetra.so.12
#7  0x00007ffff6c4a6d8 in
Epetra_DistObject::DoTransfer(Epetra_SrcDistObject const&,
Epetra_CombineMode, int, int, int, int, int*, int*, int*, int*, int&,
char*&, int&, char*&, Epetra_Distributor&, bool, Epetra_OffsetIndex const*)
()
   from ******/lib/libepetra.so.12
#8  0x00007ffff6c4b509 in Epetra_DistObject::Export(Epetra_SrcDistObject
const&, Epetra_Import const&, Epetra_CombineMode, Epetra_OffsetIndex
const*) ()
   from ******/lib/libepetra.so.12
#9  0x00007ffff7531add in
Ifpack_OverlappingRowMatrix::ExportMultiVector(Epetra_MultiVector const&,
Epetra_MultiVector&, Epetra_CombineMode) ()
---Type <return> to continue, or q <return> to quit---
   from ******/lib/libifpack.so.12
#10 0x00007ffff74eacb3 in
Ifpack_AdditiveSchwarz<Ifpack_Amesos>::ApplyInverse(Epetra_MultiVector
const&, Epetra_MultiVector&) const ()
   from ******/lib/libifpack.so.12
#11 0x00007ffff7481f86 in Ifpack_Condest(Ifpack_Preconditioner const&,
Ifpack_CondestType, int, double, Epetra_RowMatrix*) ()
   from ******/lib/libifpack.so.12
#12 0x00007ffff74893f0 in
Ifpack_AdditiveSchwarz<Ifpack_Amesos>::Condest(Ifpack_CondestType, int,
double, Epetra_RowMatrix*) ()
   from ******/lib/libifpack.so.12
#13 0x00007ffff74a1975 in Ifpack_AdditiveSchwarz<Ifpack_Amesos>::Compute()
()
   from ******/lib/libifpack.so.12


There is something that I can do to deal with the error when this happend?

Thank you very much,

Daniel Santos-Oliván
LàCan - UPC
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://trilinos.org/pipermail/trilinos-users/attachments/20180720/ed27b233/attachment.html>


More information about the Trilinos-Users mailing list