next up previous
Next: Physically Based Matrix Distribution Up: PLAPACK Previous: Introduction

Natural Description of Linear Algebra Algorithms

 

Let us consider the simple example of implementation of the Cholesky factorization. Given a symmetric tex2html_wrap_inline560 positive definite matrix A , the Cholesky factorization of A is given by

displaymath556

where L is lower triangular.

The algorithm for implementing this operation can be described by partitioning the matrices

displaymath557

where tex2html_wrap_inline568 and tex2html_wrap_inline570 are scalars, and tex2html_wrap_inline572 and tex2html_wrap_inline574 are vectors of length n-1 . The tex2html_wrap_inline578 indicates the symmetric part of A . Now,

eqnarray104

This in turn yields the equations

eqnarray134

We now give the algorithm as it might appear on a chalk board in a classroom, and the PLAPACK implementation:

tabular147

All information that describes A , its data, and how it is distributed to processors (nodes) is encoded in a object (data-structure) referenced by a. The PLA_Obj_view_all creates a second reference, acur, into the same data. The PLA_Obj_global_length call extracts the current size of the matrix that acur currently references. If this is zero, the recursion has completed. The call to PLA_Obj_split_4 partitions the matrix, creating new references for the four quadrants. Element tex2html_wrap_inline600 is updated by taking its square root in subroutine Take_sqrt, tex2html_wrap_inline602 is scaled by tex2html_wrap_inline604 by calling PLA_Inv_scal, and finally the symmetric rank-1 update is achieved through the call to PLA_Syr. This sets up the next iteration, which is also the next level of recursion in our original algorithm.


next up previous
Next: Physically Based Matrix Distribution Up: PLAPACK Previous: Introduction

rvdg@cs.utexas.edu