[Trilinos-Users] Amesos UMFPACK

Heroux, Mike MHeroux at csbsju.edu
Fri Apr 16 14:25:56 MDT 2010


Dave,

The restriction you see on problem size is due to the underlying size restriction imposed by the Epetra data classes that are used with Amesos.  These classes use int as the data type, restricting problem sizes to 2^31.

A new effort is underway to develop the same capabilities using Tpetra.  Tpetra uses a template parameter to specify the integer size, and so can use any legitimate ordinal type that compiles correctly as the template parameter, including 64 bit ints (and 32, 16 bits, or even 8-bit chars).  Tpetra supports generic scalar types in a similar way, e.g., float, double complex<>.

Using Tpetra, we can support any of  the variety of third-party sparse direct solvers for all integer and scalar types.  In addition, we are working on a templated version of KLU (the native default solver in Amesos) that will allow us to support direct solution methods with any legitimate ordinal and scalar types, including important cases such as doubledouble and quaddouble (where the mantissa is two and four times as wide as double, resp).

We plan to have a working core of these capabilities done for the Fall 2010 release of Trilinos.

Best regards,

Mike

From: trilinos-users-bounces at software.sandia.gov [mailto:trilinos-users-bounces at software.sandia.gov] On Behalf Of Dave Makhija
Sent: Friday, April 16, 2010 2:25 PM
To: trilinos-users at software.sandia.gov
Subject: [Trilinos-Users] Amesos UMFPACK

I'm having trouble solving large linear systems using UMFPACK in Trilinos when the same system can be solved with Matlab's UMFPACK with no problem. The error returned is "Out of Memory", but this happens when 20% of our memory resources are being used. Here is the problem:

UMFPACK 5.4 documentation lists their naming convention for user callable routines as,

"1. umfpack di *: real double precision, int integers.
2. umfpack dl *: real double precision, UF long integers.
3. umfpack zi *: complex double precision, int integers.
4. umfpack zl *: complex double precision, UF long integers."

The UMFPACK documentation also talks about compiling options for 32 bit or 64 bit UMFPACK and says,
"In the LP64 [64 bit] mode, the umfpack_dl_* and umfpack_zl_* routines can solve huge problems (not limited to 2GB), limited of course by the amount of available memory."

However, in trilinos-10.2.0-Source/packages/amesos/src/Amesos_Umfpack.cpp it clearly uses only the umfpack_di* (32 bit, 2GB max) routines.

So the entire interface to the UMFPACK solver is hard coded to only do relatively small problems (2GB max)? Are there any releases or workarounds that can use the 64 bit UMFPACK routines (umfpack_dl_*)? I'm not sure how much work it would be to convert it myself, but I'm guessing if it's not included in Amesos already that it would be relatively hard to change.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: https://software.sandia.gov/pipermail/trilinos-users/attachments/20100416/8f70bc5f/attachment.html 


More information about the Trilinos-Users mailing list