Presentation is loading. Please wait.

Presentation is loading. Please wait.

Amesos Interfaces to sparse direct solvers October 15, 2003 8:30 – 9:30 a.m. Ken Stanley.

Similar presentations


Presentation on theme: "Amesos Interfaces to sparse direct solvers October 15, 2003 8:30 – 9:30 a.m. Ken Stanley."— Presentation transcript:

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


Download ppt "Amesos Interfaces to sparse direct solvers October 15, 2003 8:30 – 9:30 a.m. Ken Stanley."

Similar presentations


Ads by Google