With a concrete understanding of array descriptors (Chapter 4), it is relatively simple to translate the serial version of a BLAS call into its parallel equivalent. Translating BLAS calls to PBLAS calls primarily consists of the following steps:

- a
``P'`has to be inserted in front of the routine name, - the leading dimensions should be replaced by the
global
*array descriptors*, and - the global indices into the distributed matrices should be inserted as separate parameters in the calling sequence.

CALL DGEMM( 'No transpose', 'No transpose', M-J-JB+1, N-J-JB+1, $ JB, -ONE, A( J+JB, J ), LDA, A( J, J+JB ), LDA, ONE, $ A( J+JB, J+JB ), LDA )

CALL PDGEMM( 'No transpose', 'No transpose', M-J-JB+JA, N-J-JB+JA, $ JB, -ONE, A, J+JB, J, DESCA, A, J, J+JB, DESCA, ONE, $ A, J+JB, J+JB, DESCA )

This simple translation process considerably simplifies the implementation phase of linear algebra codes built on top of the BLAS.

The steps necessary to write a program to call a PBLAS routine are analogous to the steps presented in section 2.4.

Tue May 13 09:21:01 EDT 1997