Amesos: Direct Sparse Solver Package.

TrilinosRelease4.0Branch

intro

Amesos provides an object-oriented interface to several direct sparse solvers.

Amesos contains four supported classes:

In addition, Amesos contains a prototype code, Amesos_Mumps, which has passed a series of tests on Atlantis, an SGI machine, using 64 bit compilers.

Amesos is migrating toward a base class model: Amesos_BaseSolver. All future Amesos classes will implement the base class.

Amesos will soon support the following class:

Copyright and licensing of the third party codes

Each of the Amesos base classes is based on a third party code. Each third party code comes with its own copyright and/or licensing requirements. It is your responsibility to check with the author's of those codes (in many case you will need to do so to obtain a copy of the code) to make sure that you understand the terms of the copyright and/or licensing.

Most of these third party codes are intended to be made available at no cost to users. Much of the copyright and licensing restrictions concern rights to modify, redistribute the code and generally include a request that credit be given in any papers which make use of their code. Please refer to the web page for the package that you are interested in for details.

It is the intent of the SuperLU team to make SuperLU and SuperLUdist freely available without any copyright restrictions, i.e. not even GPL restrictions. However, as of the last I checked, they still included one or two codes that have more restrictive copyrights.

Quick comparison of the Amesos classes

Features Amesos_Dscpack Amesos_Umfpack Epetra_SLU SuperludistOO Amesos_Mumps
Based on Amesos_BaseSolver Yes Yes No No Yes
Memory requirement Serial structure;
Distributed values and LU
All serial All serial Serial input;
Distributed LU
Serial input;
Distributed LU
Distributed input matrix Yes Yes No Yes Yes
Unsymmetric matrices No Yes Yes Yes Yes

Testing Amesos_Dscpack Amesos_Umfpack Epetra_SLU SuperludistOO Amesos_Mumps
Sgi64/IRIX/Atlantis nightly nightly unit nightly unit
Sunos/Paunchy unit unit unit nightly not built
Herouxsmp/Linux unit unit unit nightly not built
OSF/Stratus unit nightly unit unit not built
cygwin unit nightly unit nightly not built

Notes:

Installing Amesos

Each of the Amesos classes provides an interface to a third party direct sparse solver code. In order to install a particular class, you must first install the underlying direct sparse solver code. Amesos installation requires four steps:

Additional architecture specific hints can be found in the CVS repositiory ~/Trilinos3PL/config. A copy, albeit a potentially out-of-date copy, of ~/Trilinos3PL/config can be found at: http://www.cs.utk.edu/~kstanley/Trilinos3PL/config.

Finding MPI for your architecture

Finding Optimized BLAS for your architecture

Installing third party software

link errors

Configuring and building Trilinos with Amesos

You will need to add three switches to your configure invocation script. Amesos is not built with any of the supported classes by default. You must choose at least one.

UMFPACK requires two libraries libumfpack.a and libamd.a. If you install UMFPACK in your Trilinos3PL directory using the directory structure provided by UMFPACK, "--with-trilinos3pldir=" is sufficient. If you install these libraries in other directories, you can use --with-amesos-umfpacklib= and --with-amesos-umfpackamdlib= to specify those libraries.

MUMPS requires two libraries libdmumps.a and libpord.a. If you install MUMPS in your Trilinos3PL directory using the directory structure provided by MUMPS, "--with-trilinos3pldir=" is sufficient. If you install these libraries in other directories, you can use --with-amesos-mumpslib= and --with-amesos-mumpspordlib= to specify those libraries. MUMPS also requires ScaLAPACK and BLACS libs. Use LIBS="" in the configuration script to specify the ScaLAPACK and BLACS libraries for inclusion in the link.

Testing Amesos with SuperLU distributed

cd packages/amesos/test
source AmesosShortScript.exe
echo $status

In the 3.0.1 tar ball, the test will print a message upon success. In the current development version of the code, under CVS control, the test is silent. However there are two ways to test whether the test succeeded:

Note: If AmesosShortScript.exe is not in amesos/test, it is likely that the make in the amesos/test directory failed.

AmesosShellScript.exe contains a slightly longer test including larger matrices.

Testing Amesos with SuperLU serial

Amesos as contained in the trilinos3.0.1 tar ball does not include a test for SuperLU serial.

AmesosShortSuperLU.exe, found only in the CVS repository at the moment, tests Amesos with SuperLU serial. Follow the instruction for testing with SuperLU distributed above, using AmesosShortSuperLU.exe instead of AmesosShortScript.exe.

Testing Amesos with DSCPACK

cd packages/amesos/test
source AmesosDscpackShort.exe
echo $status

Note: If AmesosDscpackShort.exe is not in amesos/test, it is likely that the make in the amesos/test directory failed.

AmesosDscpack.exe contains a slightly longer test.

Testing Amesos with UMFPACK

Amesos_Umfpack can be used with or without MPI. AmesosUmfpackSerial.exe will test Amesos_Umfpack in serial mode. AmesosUmfpack.exe will test Amesos_Umfpack as used with MPI (including tests of AmesosUmfpack on distributed matrices).

cd packages/amesos/test
source AmesosUmfpackSerial.exe
echo $status

AmesosUmfpack.exe tests Amesos_Umfpack built with MPI. (UMFPACK is a serial code, however Amesos_Umfpack accepts a distributed matrix as a convenience.)

Note: If AmesosDscpackShort.exe is not in amesos/test, it is likely that the make in the amesos/test directory failed.

Known bugs

Amesos Home Pages

The official Amesos Home Page is kept at Sandia.

My UTK Amesos home page may be more up-to-date on occasion.

This page last updated 23 July 2003.


Generated on Thu Sep 18 12:42:57 2008 for Amesos by doxygen 1.3.9.1