Guide and Reference


In Brief--What's Provided in ESSL for AIX


Guide Information

This part of the book is organized into seven chapters, providing guidance information on how to use ESSL. It is organized as follows:


Introduction and Requirements

This chapter introduces you to the Engineering and Scientific Subroutine Library (ESSL) for Advanced Interactive Executive (AIX*).


Overview of ESSL

This section gives an overview of the ESSL capabilities and requirements.

ESSL is a state-of-the-art collection of subroutines providing a wide range of mathematical functions for many different scientific and engineering applications. Its primary characteristics are performance, functional capability, and usability.

Performance and Functional Capability

The mathematical subroutines, in nine computational areas, are tuned for performance on the RS/6000*. The computational areas are:

ESSL provides four run-time libraries:

All libraries are designed to provide high levels of performance for numerically intensive computing jobs on these respective processors. All versions provide mathematically equivalent results.

The ESSL subroutines can be called from application programs written in Fortran, C, C++, and Programming Language/I (PL/I). ESSL runs under the AIX operating system.

Usability

ESSL is designed for usability:

The Variety of Mathematical Functions

This section describes the mathematical functions included in ESSL.

Areas of Application

ESSL provides a variety of mathematical functions for many different types of scientific and engineering applications. Some of the industries using these applications are: Aerospace, Automotive, Electronics, Petroleum, Finance, Utilities, and Research. Examples of applications in these industries are:

Structural Analysis
Time Series Analysis
Computational Chemistry
Computational Techniques
Fluid Dynamics Analysis
Mathematical Analysis
Seismic Analysis
Dynamic Systems Simulation
Reservoir Modeling
Nuclear Engineering
Quantitative Analysis
Electronic Circuit Design

What ESSL Provides

The subroutines provided in ESSL, summarized in Table 1, fall into the following groups:

To help you select the ESSL subroutines that fulfill your needs for performance, accuracy, storage, and so forth, see "Selecting an ESSL Subroutine".

Table 1. Summary of ESSL Subroutines
ESSL Area of Computation Integer Subroutines Short- Precision Subroutines Long- Precision Subroutines
Linear Algebra Subprograms:

  • Vector-scalar

  • Sparse vector-scalar

  • Matrix-vector

  • Sparse matrix-vector

 

0

0

0

0

 

41

11

32

0

 

41

11

32

3

Matrix Operations: Addition, subtraction, multiplications, rank-k updates, rank-2k updates, and matrix transposes 0 25 26
Linear Algebraic Equations:

  • Dense linear algebraic equations

  • Banded linear algebraic equations

  • Sparse linear algebraic equations

  • Linear least squares

 

0

0

0

0

 

30

18

0

3

 

32

18

11

3

Eigensystem Analysis: Solutions to the algebraic eigensystem analysis problem and the generalized eigensystem analysis problem 0 8 8
(Signal Processing) Computations:

  • Fourier transforms

  • Convolutions and correlations

  • Related computations

 

0

0

0

 

15

10

6

 

11

2

6

Sorting and Searching: Sorting, sorting with index, and binary and sequential searching 5 5 5
Interpolation: Polynomial and cubic spline interpolation 0 4 4
Numerical Quadrature: Numerical quadrature on a set of points or on a function 0 6 6
Random Number Generation: Generating vectors of uniformly distributed and normally distributed random numbers 0 3 3
Utilities: General service operations 11 0 3
Total ESSL Subroutines 16 217 225

ESSL--Processing Capabilities

ESSL provides four run-time libraries, the ESSL SMP Library, the ESSL Thread-Safe Library, the ESSL POWER2 Library, and the ESSL POWER Library. These libraries are designed to provide high levels of performance for numerically intensive computing jobs on the RS/6000 processors. To order the IBM Engineering and Scientific Subroutine Library for AIX, Version 3, specify program number 5765-C42. Most of the subroutine calls are compatible with those in the ESSL/370 product. See the Engineering and Scientific Subroutine Library Version 2.2 Guide and Reference for details.

Accuracy of the Computations

ESSL provides accuracy comparable to libraries using equivalent algorithms with identical precision formats. Both short- and long-precision real versions of the subroutines are provided in most areas of ESSL. In some areas, short- and long-precision complex versions are also provided, and, occasionally, an integer version is provided. The data types operated on by the short-precision, long-precision, and integer versions of the subroutines are RS/6000 architecture precisions: ANSI/IEEE 32-bit and 64-bit binary floating-point format, and 32-bit integer. See the ANSI/IEEE Standard for Binary Floating-Point Arithmetic, ANSI/IEEE Standard 754-1985, for more detail. (There are ESSL-specific rules that apply to the results of computations on workstation processors using the ANSI/IEEE standards. For details, see "What Data Type Standards Are Used by ESSL, and What Exceptions Should You Know About?".)

For more information on accuracy, see "Getting the Best Accuracy".

High Performance of ESSL

Algorithms: The ESSL subroutines have been designed to provide high performance. (See references [30], [41], and [42].) To achieve this performance, the subroutines use state-of-the-art algorithms tailored to specific operational characteristics of the hardware, such as cache size, Translation Lookaside Buffer (TLB) size, and page size.

Most subroutines use the following techniques to optimize performance:

Mathematical Techniques: All areas of ESSL use state-of-the-art mathematical techniques to achieve high performance. For example, the matrix-vector linear algebra subprograms operate on a higher-level data structure, matrix-vector rather than vector-scalar. As a result, they optimize performance directly for your program and indirectly through those ESSL subroutines using them.

The Fortran Language Interface to the Subroutines

The ESSL subroutines follow standard Fortran calling conventions and must run in the Fortran run-time environment. When ESSL subroutines are called from a program in a language other than Fortran, such as C, C++, or PL/I, the Fortran conventions must be used. This applies to all aspects of the interface, such as the linkage conventions and the data conventions. For example, array ordering must be consistent with Fortran array ordering techniques. Data and linkage conventions for each language are given in "Coding Your Program".


[ Top of Page | Previous Page | Next Page | Table of Contents | Index ]