[Trilinos-Users] Amesos UMFPACK

Heroux, Michael A maherou at sandia.gov
Fri Apr 16 18:30:57 MDT 2010


This approach won't work with Trilinos.  You would have to use UMFPACK directly.

Mike

________________________________
From: trilinos-users-bounces at software.sandia.gov [trilinos-users-bounces at software.sandia.gov] On Behalf Of Dave Makhija [makhijad at colorado.edu]
Sent: Friday, April 16, 2010 6:24 PM
To: Matt G
Cc: trilinos-users at software.sandia.gov; Heroux, Mike
Subject: Re: [Trilinos-Users] Amesos UMFPACK

I attempted compiling UMFPACK with these flags in UFconfig.mk to solve larger problems,

UMFPACK_CONFIG = -DLP64

and later

UMFPACK_CONFIG = -DLP64 -DLONGBLAS=long

After recompiling Trilinos neither fixed the problem. Am I missing some other flags? How does this not run into the problem Mike H explained?

Thanks for the responses

Dave M






On Fri, Apr 16, 2010 at 5:28 PM, Matt G <mgoodman at email.arizona.edu<mailto:mgoodman at email.arizona.edu>> wrote:
Optionally you can compile UMFPACK with the the -DP64 flag.  Its in the UMFPACK docs somewhere, but I mention it here<http://craneium.net/index.php?option=com_content&view=article&id=78>.  Things get slower and these sorts of problems memory requirements grow with DOF^2 or so, so it wont buy you as much as it seems.
--Matthew Goodman

=====================
Find me on LinkedIn: http://tinyurl.com/d6wlch
Follow me on twitter: http://twitter.com/meawoppl



On Fri, Apr 16, 2010 at 1:25 PM, Heroux, Mike <MHeroux at csbsju.edu<mailto:MHeroux at csbsju.edu>> wrote:
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> [mailto: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<mailto: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.

_______________________________________________
Trilinos-Users mailing list
Trilinos-Users at software.sandia.gov<mailto:Trilinos-Users at software.sandia.gov>
http://software.sandia.gov/mailman/listinfo/trilinos-users



-------------- next part --------------
An HTML attachment was scrubbed...
URL: https://software.sandia.gov/pipermail/trilinos-users/attachments/20100416/12ca2d31/attachment-0001.html 


More information about the Trilinos-Users mailing list