Escolar Documentos
Profissional Documentos
Cultura Documentos
5/21/2003
Outline
Topic
Slide
7
8
slide to be provided
slide to be provided
References to ScaLAPACK
10
Why you need to study this tutorial before calling ScaLAPACK routines
11
12
13
14
5/21/2003
Outline Continued
Topic
ScaLAPACK generic naming conventions for Drivers and Computational routines
ScaLAPACK generic naming conventions for Auxiliary routines
Naming convention for the Driver routines
Naming convention for the Computational routines
How to pick the appropriate Driver routines to solve a specific eigensystem in ScaLAPACK
How to pick the appropriate Computational routines to solve a specific eigensystem
The theory of computing eigenvalues/eigenvectors of non-symmetric-complex matrices
Converting the theory to code
Sample code to calculate the right-rigenvectors in LAPACK
Sample code to calculate the right-eigenvectors in ScaLAPACK
Slide
15
16
17
18-19
20-21
22-24
25
26-29
30
?
5/21/2003
Outline Continued
Topic
Slide
slide to be provided
slide to be provided
slide to be provided
slide to be provided
Exercises
slide to be provided
Other Areas
slide to be provided
slide to be provided
References
slide to be provided
5/21/2003
5/21/2003
Important Points To Be
Noted
z The application code should be compiled with
the same compiler that the parallel eigensystem
library is built with. Otherwise, your driver code
may not compile and/or link correctly, or may
not produce the correct results
z Later slides will be provided on the topics of:
y How to create a Makefile (Specific to the Linux)
y How to submit and run a parallel job on Linux system
using PBS
5/21/2003
Organization Of ScaLAPACK
z
z
Organization
y A library of parallel math procedures
Components of ScaLAPACK (dependency graph)
y PBLAS: Parallel BLAS (Basic Linear Algebra
Subroutines)
y BLACS: Parallel Communication
y LAPACK: Serial linear algebra computation
y BLAS: Serial BLAS
z Note:
SCALAPACK
PBLAS
LAPACK
BLACS
BLAS
References To ScaLAPACK
z
z
5/21/2003
10
5/21/2003
11
5/21/2003
12
SY:
HE:
OR:
UN:
GE:
Matrix-type
SYmmetric (real)
HErmitian (complex)
ORthogonal (real)
UNitary (complex)
GEneral
5/21/2003
TR: Tridiagonal
ST: Symmetric Tridagonal
PO: POsitive definite
13
y Expert Driver
x
z Computational routines
y More than one routine is necessary to complete the eigensystem
computations
z Auxiliary routines
y Compute certain subtask or common low-level computations (e.g, max,
min, abs routines)
5/21/2003
14
Pxyyzzz
Symbols represent:
P: Parallel
x: Datatype designator such as S: real, D: double, ...
yy: Matrix type designator such as: GE: general, SY: symmetric, , or LA: auxiliary
routine
zzz: Computation type such as: EV: eigenvalues and eigenvectors
As an example, PSSYEV is the driver for the parallel (P) eigensystem solver
for a single (S) precision symmetric (SY) matrix which finds all
eigenvalues (E) and eigenvectors (V)
5/21/2003
15
5/21/2003
16
y Expert Driver
x Computes all or a selected subset of the eigenvalues
and eigenvectors
ZZZ string is EVX
17
z Symmetric eigenproblem
y Computes eigenvalues and eigenvectors of real-symmetric or
complex-Hermitian matrix A
y Steps in computation
x When reducing A to tridiagonal form, the zzz string is TRD, meaning
Tridiagonal ReDuction
x When computing eigenvalues/eigenvectors of a tridigonal matrix,
the string zzz may be EIG, meaning computation of eigensystem
5/21/2003
18
When reducing matrix A to upper Hessenberg form, the string ZZZ is HRD
When reducing upper Hessenberg matrix to Schur form and computing
eigenevalues of the Schur form, the string ZZZ is HQR
When computing eigenvectors of the Schur form and transforming them back to
the eigenvectors of matrix A, the string ZZZ is EVC
Note: An explanation of an intermediate step and more guides are provided in
succeeding sections
When reducing the problem to a standard symmetric eigenproblem, the string ZZZ
is GST, meaning Generalized Symmetric definite Transformation
Compute eigenvalues/vectors with routines provided for symmetric eigenproblems
19
5/21/2003
z Nonsymmetric matrix
y No expert routine is available
5/21/2003
21
22
z Nonsymmetric eigenproblems
x Compute all eigenvalues of ? and right eigenvectors v and/or left
eigenvectors u in the following equations
Av = ?v or uHA = ?uH
x First, reduce the general matrix A to upper Hessenberg form H
(A = QHQT or A = QHQH)
Call PxGEHRD subroutine
P: Parallel, x: datatype (S,D,C,Z), GE: GEneral, H: Hessenberg,
RD: Reduced
y Solve the standard form with one of the routines provided for the
symmetric eigenproblem shown the previous (slide 21)
5/21/2003
24
QZTZHQH x = ?x
T(QZ)H x = ?(QZ)-1 x compare to TY = ?Y(Y is the right eigenvector of T)
Y = (QZ)H x => x = QZY
z As a result, to compute x, we need to compute Y (the right
eigenvector of T), and then multiply by the product of QZ
z The complete description of the routines which implement the
above theory is described in the following slides
multiply by (QZ)-1:
5/21/2003
25
=>
zgehrd
5/21/2003
H
Q
26
27
29
5/21/2003
30
Left Eigenvectors Of
Non-symmetric-complex Matrix
z The left eigenvector computation is slight modification of the
computation for right eigenvector as follows
xH A = ? xH
The matrix H is the Hessenberg form of A and Q is unitary:
A = QHQH
The matrixT is the upper triangular Schur form of H and Z is a unitary: H = ZTZH
Replace A and H:
xHQZTZHHQH = ?xH
xHQZT = ?xH(QZ) and compare to YHT = ?YH
YH = xHQZ => xH = Y HQ HZH or x = QZY
z As a result, to compute x, need to compute Y (left eigenvector of
T), and then multiply by the product of QZ
z The complete description of the subroutines which implement the
above theory is described in the following slides
Right multiply by (QZ):
5/21/2003
31