Amesos Interfaces to sparse direct solvers - PowerPoint PPT Presentation

1 / 28
About This Presentation
Title:

Amesos Interfaces to sparse direct solvers

Description:

Download from UMFPACK website. Modify make.inc (see: ... Klu Serial, unblocked, for circuit matrices. SuperLUdist Distributed; limited Amesos release ... – PowerPoint PPT presentation

Number of Views:227
Avg rating:3.0/5.0
Slides: 29
Provided by: trilino
Category:

less

Transcript and Presenter's Notes

Title: Amesos Interfaces to sparse direct solvers


1
Amesos Interfaces to sparse direct solvers
  • October 15, 2003
  • 830 930 a.m.
  • Ken Stanley

2
Overview
  • Background
  • Simplifying AX B
  • Getting started Amesos_Umfpack
  • Amesos options
  • Other Amesos interfaces
  • Status
  • Future Work and Discussion
  • Summary

3
Background
  • Solvers
  • Sandia Users
  • Challenges

4
Background - Solvers
  • PSPACES Gupta f90 mpi SPD unsupported
  • WSSMP Gupta binary mpi general
  • WGSMP Gupta binary mpi SPD
  • SPOOLES Ashcraftpublic domainc unsupported
  • SuperLU Li,Demmelserialcgeneral
  • UMFPACK Davisserialcgeneralrobust
  • Unnamed Ngparallelf77SPD
  • MUMPS Amestoyf90general/SPD
  • Ksparse Kundert
  • SNL_MPFRONT Bennerparallel
  • OTHERS y12M, Boeing, MA57, MA43, DPSLDLT,
    DPSLDU, PARDISO, Shen, Dearholt, SPLU, Lusol,
    LUSOL, XYT

5
Background Sandia Users
  • Tuminaro ML, etc.
  • Shadid MP Salsa
  • Williams Sierra
  • Hoekstra Xyce
  • Pierson
  • Dohrman
  • Schultz - GOMA
  • Many Aztec
  • Many more

6
Background - Challenges
  • No single solver dominates
  • Different interfaces
  • Unique data distribution requirements
  • Academic quality
  • Sporadic development, bugs, untested features,
    changing interfaces
  • Sandia modifications not consistently adopted
  • Imperfect heuristics
  • Interface changes between revisions

7
Simplifying AX B
  • Example
  • Clean, consistent interface
  • Single point of contact
  • Evaluation

8
Simplifying AX BExample
  • Epetra_LinearProblem Problem( A, x, b)
  • Amesos_Umfpack A_direct( Problem, ParamList )
  • A_direct.SymbolicFactorization( )
  • A_direct.NumericFactorization( )
  • A_direct.Solve( )

9
Simplifying AX B Clean, consistent interface
  • Amesos_BaseSolver class
  • Seperation from underlying solver
  • Identical interface for serial and parallel
    solvers
  • Nearly identical interface for each solver
  • Amesos redistributes the data
  • Easy upgrade

10
Simplifying AX B Single point of contact
  • Isolate report bugs follow-up
  • Prompt bug fixes without maintaining third party
    code
  • Encourage developers to adopt Trilinos practices
  • Autotools CVS regression testing bug tracking
    etc.
  • Regression testing
  • Check for memory leaks

11
Simplifying AX B Evaluation
  • Solvers
  • Platforms
  • Matrices
  • Features
  • Our goal is to find the bugs before you do

12
Getting started Building Umfpack
  • Amesos User Guide http//software.sandia.gov/tri
    linos/packages/amesos
  • Build UMFPACK
  • Download from UMFPACK website
  • Modify make.inc (see Trilinos3PL/config/UMFPACKv4
    .1)
  • make Check output of example run
  • Future Work
  • autotool UMFPACK
  • Trilinos/packages/UMFPACK ?
  • -lumfpack?

13
Getting started Building Amesos_Umfpack
  • Amesos User Guide
  • http//software.sandia.gov/trilinos/packages/ameso
    s
  • Build Amesos_Umfpack
  • ./configure enable-amesos enable-amesos-umfpack
    with-trilinos3PLdir/home/userid/Trilinos3PL
  • make
  • cd amesos/test source AmesosUmfpackShort.exe

14
Getting started Calling Amesos_Umfpack
  • Epetra_CrsMatrix A
  • Epetra_Vector x, b
  • AMESOSParameterList ParamList
  • Epetra_LinearProblem Problem( A, x, b)
  • Amesos_Umfpack A_direct( Problem, ParamList )
    A_direct.SymbolicFactorization( )
  • A_direct.NumericFactorization( )
  • A_direct.Solve( )
  • Future Work Factory Method, TrilinosParameter
    List

15
Amesos options
  • Same structure different data
  • Multiple solves
  • Blocked right hand sides
  • Parameter control
  • Different solver
  • Matrix format

16
Amesos options Same Structure Different Data
  • Epetra_LinearProblem Problem( A, x, b)
  • Amesos_Umfpack A_direct( Problem, ParamList )
    A_direct.SymbolicFactorization( )
  • for ( )
  • // Modifications to the non-zero values of A
  • A_direct.NumericFactorization( )
  • A_direct.Solve( )

17
Amesos options Multiple Solves
  • Epetra_LinearProblem Problem( A)
  • Amesos_Umfpack A_direct( Problem, ParamList )
    A_direct.SymbolicFactorization( )
  • A_direct.NumericFactorization( )
  • for ( )
  • Problem.SetLHS(x)
  • Problem.SetRHS(b)
  • A_direct.Solve( )

18
Amesos Options Blocked right hand sides
  • Epetra_CrsMatrix A
  • Epetra_MultiVector x, b
  • AMESOSParameterList ParamList
  • Epetra_LinearProblem Problem( A, x, b)
  • Amesos_Umfpack A_direct( Problem, ParamList )
    A_direct.SymbolicFactorization( )
  • A_direct.NumericFactorization( )
  • A_direct.Solve( )

19
Amesos Options Parameter control
  • Epetra_LinearProblem Problem( A, x, b)
  • Amesos_Umfpack A_direct( Problem, ParamList )
    A_direct.SymbolicFactorization( )
  • ParamList.SetParam( UmfpackOrder, 2 )
  • for ( )
  • // Modifications to the non-zero values of A
  • A_direct.NumericFactorization( )
  • A_direct.Solve( )

20
Amesos Options Matrix format
  • Interface accepts any Epetra_RowMatrix
  • Current implementation accepts any
    Epetra_CrsMatrix

21
Other Amesos Interfaces
  • Klu Serial, unblocked, for circuit matrices
  • SuperLUdist Distributed limited Amesos
    release
  • MUMPS Distributed F90 limited Amesos release
  • DSCPACK Distributed Symmetric
  • Use distributed code for problems
  • that are too large to solve on one processor
    -or-
  • take more than one minute to factor
  • Others WSMP, Benner, Ksparse, Ng

22
Status
  • Nightly testing on four platforms
  • Atlantis/IRIX,
  • Stratus/OSF,
  • Herouxsmp/Linux,
  • Paunchy/SunOS
  • Full support for three packages Amesos_Umfpack,
    Amesos_Klu and Amesos_Dscpack
  • Other packages Epetra_SLU, SuperludistOO,
    Amesos_Mumps, Amesos_Superludist
  • One example code example/AmesosDscpack

23
Future Work
  • Capabilities
  • Ease of use
  • Single point of contact

24
Future Work - Capabilities
  • Amesos_Superludist
  • Amesos_Mumps, Amesos_SuperLU, Amesos_Ksparse,
    Amesos_Benner, Amesos_Ng, Amesos_Wsmp
  • Expose capabilities to users
  • Support transpose for all solvers
  • Support row matrix interface
  • Support Epetra_VbrMatrix in DSCPACK
  • Extra precision iterative refinement

25
Future Work Ease of use
  • Examples (TSF extended TSF core etc.)
  • Pre-built libraries? (-lamesos, -lumfpack,
    -lsuperludist)
  • Autotools use by third party developers
  • Factory Method

26
Future Work Single point of contact
  • Encourage developers to adopt Trilinos practices
  • Autotools CVS regression testing bug tracking
    nightly testing etc.
  • Trilinos package?
  • Isolate, report bugs, follow-up
  • Migration to latest revisions
  • Add testing based on the Amesos_BaseSolver class
  • More features
  • More matrices
  • Parameter control
  • Test error conditions

27
Discussion
  • Your needs?
  • Platforms
  • Packages
  • Features
  • Interface

28
Amesos Value Added
  • Simple, consistent interface
  • Short learning curve
  • Easy to switch solvers
  • Interface to third party developers
  • Evaluation
  • Bug workarounds

29
Summary
  • Amesos is driven by your needs
  • Tell me what you need
  • Give me your matrices
  • Simple, consistent interface
  • Start with Amesos_Umfpack
  • Switch to parallel codes for large matrices
  • Matrices that dont fit in memory
  • Factorizations that take over a minute
  • Experiment with different solvers
Write a Comment
User Comments (0)
About PowerShow.com