Guide and Reference
This appendix contains information about sample programs provided with the
Parallel ESSL product.
A variety of sample programs are shipped with the Parallel
ESSL product in the following directories:
- /usr/lpp/pessl.rte.common/example/c
- /usr/lpp/pessl.rte.common/example/fortran
- /usr/lpp/pessl.rte.common/example/hpf
For file names and installation procedures, see the Parallel ESSL
Installation Memo.
The sample programs include:
- A diffusion calculation example program, which is discussed at length
later in this chapter. Three different versions of this sample program, in C,
Fortran, and HPF, are provided.
- Three sample message passing programs, image.f, pdgexmp.f, and simple.f,
plus utilities in a utility library. These are provided in the Fortran
directory, along with a makefile. More information regarding these programs
and utilities is provided in the file
/usr/lpp/pessl.rte.common/example/fortran/examples.readme.
Following is a description of their functions:
- The image program demonstrates the use of the complex to real Fourier
transform subroutines and calculates a correlation between two images.
- The pdgexmp program is a simple performance program, allowing you to vary
the processor size and shape, as well as the block size, to gauge their effect
on the performance of solutions to linear equations.
- The final program, simple.f, is an example program showing how to set up
and use the sample utilities.
- The sample utility library consists of a set of Fortran 90 routines
implementing commonly-used message passing functions. This example subroutine
library provides you with a simplified interface to some very commonly-used
message passing routines, including:
- Library initialization:
- initutils
- BLACS initialization and initialization of library variables. This must be
the first routine called in order to use the remainder of the library.
- exitutils
- Performs a BLACS grid exit and marks the library as uninitialized.
- Scatter operation:
- scatter
- Scatter a matrix on a single node to a distributed matrix.
- Gather operation:
- gather
- Gather a matrix onto a single node from a distributed matrix.
- Nearest neighbor communication:
- sendnorthborder
- Sends top row of each block to north processor.
- sendwestborder
- Sends first column of each block to west processor.
- sendsouthborder
- Sends last row of each block to south processor.
- sendeastborder
- Sends last column of each block to east processor.
- rcvnorthborder
- Receives last row of each block from north processor.
- rcvwestborder
- Receives last column of each block from west processor.
- rcvsouthborder
- Receives top row of each block from south processor.
- rcveastborder
- Receives first column of each block from east processor.
- Array creation and descriptor vector initialization:
- create_array
- Allocates memory for array and initializes array descriptor.
- Global-to-local mapping routines:
- g2l
- Creates global to local index arrays.
- l2g
- Creates local to global index arrays.
- number_row_blocks
- Returns number of local row blocks in an array.
- number_col_blocks
- Returns number of local column blocks in an array.
- last_row_block_size
- Returns size of last local row block in an array.
- last_col_block_size
- Returns size of last local column block an in array.
- Three sample message passing programs using the sparse linear algebraic
equations subroutines plus some utility programs. These programs are discussed
in "Sample Sparse Linear Algebraic Equations Programs". They are provided in the Fortran directory along with a makefile. More
information regarding these programs and utilities is provided in the file
/usr/lpp/pessl.rte.common/example/fortran/examples.readme.
[ Top of Page | Previous Page | Next Page | Table of Contents | Index ]