1 / 19

Interface for Eigenvalue Methods

Interface for Eigenvalue Methods. John Wu Lawrence Berkeley National Laboratory john.wu@nersc.gov kwu@lbl.gov. Outline. Review eigenvalue methods Examine existing schemes Explore possible alternatives. Types of Eigenvalue Problems. Standard: Ax = l x Generalized: Ax = l Bx

annejohnson
Download Presentation

Interface for Eigenvalue Methods

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Interface for Eigenvalue Methods John Wu Lawrence Berkeley National Laboratory john.wu@nersc.gov kwu@lbl.gov

  2. Outline • Review eigenvalue methods • Examine existing schemes • Explore possible alternatives

  3. Types of Eigenvalue Problems • Standard: Ax = lx • Generalized: Ax = lBx • Polynomial: -Ax+lB1x+l2B2x+…=0 • Constrains: Cx=0

  4. Types of Methods • QR based methods (direct methods) • Need to access the elements of the matrix • O(n2) space complexity • O(n3) time complexity • Projection based methods (iterative) • Access matrix through MATVEC • Problem dependent space and time need

  5. QR methods LAPACK EISPACK ScaLAPACK PLAPACK Projection methods ARPACK LANSO, LASO, LANZ, LANCZOS … Davidson method, JDQZ, … RITZIT CG, Existing Software

  6. Specifying an Eigenvalue Problem • Matrices: A, B, A-1, (A-sB)-1B, B-1A • Type of eigenvalues: largest, smallest, around a center, in a range • Number of eigenvalues • Are eigenvectors needed as well

  7. Specifying an Eigenvalue Problem -- Computing Issues • Representations of matrices, eigenvalues and eigenvectors • Interface to MATVEC and preconditioner • Accuracy (reliability) requirement • Resource constrains • Controlling parameters

  8. netlib.org/lapack Case Study I -- LAPACK SSYEVX(JOBZ, RANGE, UPLO, N, A, LDA, VL, VU, IL, IU, ABSTOL, M, W, Z, LDZ, WORK, LWORK, IWORK, IFAIL, INFO) • QR based method • Representing matrices as arrays (1-D) • User provide workspace • User must set all options

  9. Case Study II -- ARPACK DNAUPD(COMM, IDO, BMAT, N, WHICH, NEV, TOL, RESID, NCV, V, LDV, IPARAM, IPNTR, WORKD, WORKL, LWORKL, INFO) • Implicitly restarted Arnoldi method • Reverse communication for MATVEC • Arguments are arrays (1-D) • User provides workspace ftp://ftp.caam.rice.edu/ pub/software/ARPACK

  10. Case Study III -- TRLAN TRLAN(OP, INFO, NROW, MEV, EVAL, EVEC, LDE) • thick-restart Lanczos method • MATVEC (OP) has a prescribed interface • eigenvalues/eigenvectors are arrays • use Fortran 90 TYPE (INFO) to store controlling parameters lbl.gov/~kwu

  11. Case Study IV -- ARPACK++ #include “areig.h” Nconv = areig(EigValR, EigValI, EigVec, n, nnz, A, inrow, pcol, nev); • Based on ARPACK • Simple data structures for matrix, eigenvalues and eigenvectors ftp://ftp.caam.rice.edu/ pub/software/ARPACK

  12. Case Study V -- RogueWave www.roguewave.com #include <rw/deig.h> DoubleEigDecomp eig(a); • QR based methods • Solution stored in eig object • Eig.eigenValues() for eigenvalues

  13. Eigenvalue function Closer to traditional libraries Explicit arguments for eigenvalue and eigenvector May be an interface of a matrix class Decomposition class Computation is hidden Contains functions to output eigenvalues, etc Decomposition is an object Two Basic Strategies

  14. Eigenvalue function Matrices Eigenvalue and eigenvector are function arguments Controlling parameters are function arguments Decomposition class Matrices Eigenvalue and eigenvector stored internally Controlling parameters set by member function Basic Data Elements

  15. Eigenvalue function Reverse communication or function pointer or direct access to the matrices Decomposition class Function pointer (functor) or direct access to matrices External functions must use prescribed interface Interaction With Other Components

  16. Feature Comparison Eigenvalue Class always has a decompose function, but it may not be public

  17. Relation With Equation Solvers • Share the same basic elements: vector, multi-vector, matrices • Share the same external/user-supplied functions: MATVEC, preconditioner • Eigenvalue solver may use equation solver

  18. Relation With Existing Software • Existing matrix libraries may be used to specify basic data elements • Existing Fortran/C libraries may be used to perform the actual computations • Should make it easy to interact with existing frameworks, e.G., POOMA

  19. Future Work • Reviewing other OO eigenvalue software • Concrete interface specification • Data structure of the basic elements • Interface of MATVEC and preconditioner

More Related