Fortran/C/C++ Compilers & Debugging Tools

IBM Engineering and Scientific Subroutine Library (ESSL) for IBM Linux On Power™

Product Overview

The Absoft High Performance Computing Software Development Kit (HPC SDK) includes the IBM Engineering and Scientific Subroutine Library (ESSL). The Engineering Scientific Subroutine Library (ESSL) is a highly optimized library of special function mathematical subroutines. ESSL can be used for both developing and enabling many different types of scientific and engineering applications, as well as numerically intensive applications in other areas such as finance. Existing applications can be enabled by replacing comparable subroutines (or inline code) with calls to ESSL subroutines. The availability of a variety of ESSL subroutines significantly reduces the effort required in developing a new application. This also makes migration of an application to a new platform easier because ESSL is tuned for all platforms where it is available. ESSL subroutines are well tested, extremely reliable and optimized for the Power platform. Utilizing them whenever possible not only saves time but also increases performance of your application. More...

Key Benefits
  • It has an easy-to-use call interface
  • If your existing application programs use the ESSL Serial library, you only need to re-link your program to take advantage of the increased performance of the ESSL SMP Library
  • It supports a 64-bit environment
  • It has informative error-handling capabilities, enabling you to calculate auxiliary storage sizes and transform lengths
  • An online book that can be displayed using an Hypertext Markup Language (HTML) document browser, is available for use with ESSL
  • With the Absoft Common Installer, ESSL becomes easy to install and start using right away!
Back to top

Key Features
  • ESSL provides nine major areas of mathematical computation, providing the computations commonly used by industry applications
  • ESSL includes numerous utilities, performing general-purpose functions
  • The ESSL subroutines have been designed to provide high performance on POWER5 processors and SMP machines

To achieve high 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:

  • Managing the cache and TLB efficiently so the hit ratios are maximized; that is, data is blocked so it stays in the cache or TLB for its computation
  • Accessing data stored contiguously--that is, using stride-1 computations
  • Exploiting the large number of available floating-point registers
  • Using algorithms that minimize paging
  • Structuring the ESSL subroutines so, where applicable, the compiled code fully utilizes the dual floating-point execution units. Because two Multiply-Add instructions can be executed each cycle, neglecting overhead, this allows four floating-point operations per cycle to be performed.
  • Structuring the ESSL subroutines so, where applicable, the compiled code takes full advantage of the hardware data prefetching
Product Description

The Absoft High Performance Computing Software Development Kit (HPC SDK) includes the IBM Engineering and Scientific Subroutine Library (ESSL). The Engineering Scientific Subroutine Library (ESSL) is a highly optimized library of special function mathematical subroutines. ESSL can be used for both developing and enabling many different types of scientific and engineering applications, as well as numerically intensive applications in other areas such as finance. Existing applications can be enabled by replacing comparable subroutines (or inline code) with calls to ESSL subroutines. The availability of a variety of ESSL subroutines significantly reduces the effort required in developing a new application. This also makes migration of an application to a new platform easier because ESSL is tuned for all platforms where it is available. ESSL subroutines are well tested, extremely reliable and optimized for the Power platform. Utilizing them whenever possible not only saves time but also increases performance of your application.

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.

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 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.

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 or C++, 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.

Back to top

What's New

Back to top

Special Features

The mathematical subroutines, in nine computational areas, are tuned for performance. The computational areas are:

  • Linear Algebra Subprograms
  • Matrix Operations
  • Linear Algebraic Equations
  • Eigensystem Analysis
  • Fourier Transforms, Convolutions and Correlations, and Related Computations
  • Sorting and Searching
  • Interpolation
  • Numerical Quadrature
  • Random Number Generation

ESSL provides two run-time libraries:

  • The ESSL Symmetric Multi-Processing (SMP) Library provides thread-safe versions of the ESSL subroutines for use on all SMP processors. In addition, a subset of these subroutines are also multithreaded versions; that is, they support the shared memory parallel processing programming model. You do not have to change your existing application programs that call ESSL to take advantage of the increased performance of using the SMP processors; you can simply re-link your existing application programs. For a list of the multithreaded subroutines in the ESSL SMP Library, see the ESSL Documentaion.
  • The ESSL Serial Library provides thread-safe versions of the ESSL subroutines for use on all processors. You may use this library to develop your own multithreaded applications.

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

The ESSL Serial Library and the ESSL SMP Library support both 32-bit environment and 64-bit environment applications.

The ESSL subroutines can be called from application programs written in Fortran, C, and C++. ESSL runs under the AIX(R) and Linux(R) operating systems.

Ease of Use

ESSL is designed for usability:

  • It has an easy-to-use call interface.
  • If your existing application programs use the ESSL Serial library, you only need to re-link your program to take advantage of the increased performance of the ESSL SMP Library.
  • It supports a 64-bit environment.

    The data model used for the 64-bit environment is referred to as LP64. This data model supports 32-bit integers and 64-bit pointers. In accordance with the LP64 data model, all ESSL integer arguments remain 32-bit except for the iusadr argument for ERRSET.

  • It has informative error-handling capabilities, enabling you to calculate auxiliary storage sizes and transform lengths.
  • An online book that can be displayed using an Hypertext Markup Language (HTML) document browser, is available for use with ESSL.

Back to top

Availability Date

December 19 2004
  • Electronic Delivery full Media Documentation for HPC SDK

December 31 2004

  • Mail orders shipped for HPC SDK
Back to top

Terms and Conditions

Please see the HPC SDK Terms and Conditions for more information.

Agreement: IBM End User License Agreement.
The IBM End User License Agreement (EULA) should be reviewed prior to purchase of the Engineering and Scientific Subroutine Library (ESSL).

Limited warranty applies: Yes

Warranty: This program has warranty for a minimum of one year from acquisition from Absoft. The warranty provided to the customer, for at least one year from acquisition, is access to data bases (read Web sites) for program information, FAQs, including any known fixes to defects, which the customer can download or obtain otherwise and install at their leisure.

Software maintenance applies: Yes

IBM includes one year of Software Maintenance with the initial license acquisition of each program acquired. The initial period of Software Maintenance can be extended by the purchase of a renewal option that is available.

MaxFlex· Flexible Licensing available: No

Floating Network Licenses available: No

Copy and use on home/portable computer: No 

Volume orders: No

Back to top

Compatibility & Companion Products

Fortran 95 for Linux on Power™
IBM XL Fortran for Linux on Power™
IBM XL C/C++ for Linux on Power™
HPC SDK for Linux on Power™
Absoft Common Installer for Linux on Power™
Absoft Modules Environment for Linux on Power™
Common License Manager for Linux on Power™


Back to top

Documentation

User Guide
Product Literature
Presentations
White Papers

Back to top

Debugger Options
  • Fx2 Debugger - now included with HPC SDK

Back to top

Additional Information / Notices

None

Back to top