Download presentation
Presentation is loading. Please wait.
Published byShannon Watson Modified over 9 years ago
1
Amesos Interfaces to sparse direct solvers October 15, 2003 8:30 – 9:30 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 [Ashcraft];public domain;c; unsupported SuperLU [Li,Demmel];serial;c;general UMFPACK [Davis];serial;c;general;robust Unnamed [Ng];parallel;f77;SPD; MUMPS [Amestoy];f90;general/SPD; Ksparse [Kundert]; SNL_MPFRONT [Benner];parallel 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
Epetra_LinearProblem Problem( A, x, b); Amesos_Umfpack A_direct( Problem, ParamList ) ; A_direct.SymbolicFactorization( ) ; A_direct.NumericFactorization( ) ; A_direct.Solve( ) ; Simplifying AX = B Example
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
Amesos User Guide: http://software.sandia.gov/trilinos/packages/amesos http://software.sandia.gov/trilinos/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? Getting started: Building Umfpack
13
Amesos User Guide: http://software.sandia.gov/trilinos/packages/amesos Build Amesos_Umfpack –“./configure –enable-amesos –enable-amesos-umfpack –with- trilinos3PLdir=/home/userid/Trilinos3PL” –“make” –“cd amesos/test; source AmesosUmfpackShort.exe” Getting started: Building Amesos_Umfpack
14
Epetra_CrsMatrix A; Epetra_Vector x, b; AMESOS::Parameter::List 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, Trilinos::Parameter::List Getting started: Calling Amesos_Umfpack
15
Same structure different data Multiple solves Blocked right hand sides Parameter control Different solver Matrix format Amesos options
16
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( ) ; } Amesos options: Same Structure Different Data
17
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( ) ; } Amesos options: Multiple Solves
18
Epetra_CrsMatrix A; Epetra_MultiVector x, b; AMESOS::Parameter::List ParamList ; Epetra_LinearProblem Problem( A, x, b); Amesos_Umfpack A_direct( Problem, ParamList ) ; A_direct.SymbolicFactorization( ) ; A_direct.NumericFactorization( ) ; A_direct.Solve( ) ; Amesos Options: Blocked right hand sides
19
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( ) ; } Amesos Options: Parameter control
20
Interface accepts any Epetra_RowMatrix Current implementation accepts any Epetra_CrsMatrix Amesos Options: Matrix format
21
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 Other Amesos Interfaces
22
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 Status
23
Capabilities Ease of use Single point of contact Future Work
24
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 Future Work - Capabilities
25
Examples (TSF extended; TSF core; etc.) Pre-built libraries? (-lamesos, -lumfpack, -lsuperludist) Autotools use by third party developers Factory Method Future Work – Ease of use
26
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 Future Work – Single point of contact
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 don’t fit in memory –Factorizations that take over a minute –Experiment with different solvers
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.