5765-L61 IBM ESSL for Linux on Power 6.3

IBM Asia Pacific Sales Manual
Revised: September 14, 2021


Table of contents
Product life cycle datesProduct life cycle datesDescriptionDescription
Program numberProgram numberOperating environmentOperating environment
AbstractAbstractPlanning informationPlanning information
Product positioningProduct positioningPublicationsPublications
HighlightsHighlightsSecurity, auditability, and controlSecurity, auditability, and control


Product life cycle dates

Top rule

Program Number VRM Announced Available Marketing Withdrawn Service Discontinued
5765-L61 06.03.00 2020-06-09 2020-06-19 - -
5765-L61 06.02.01 2019-11-22 2019-11-22 2021-09-10 2022-09-30
5765-L61 06.02.00 2019-04-09 2019-04-19 2021-09-10 2022-09-30
5765-L61 06.01.00 2018-06-12 2018-06-15 2020-06-12 2021-09-30


Back to topBack to top

Program number

Top rule

  • IBM ESSL for Linux on Power 6.3.0 (5765-L61)


Back to topBack to top

Abstract

Top rule

Engineering and Scientific Subroutine Library (ESSL) for Linux on Power offers a collection of mathematical subroutines that are tuned for performance on select IBM Power servers running the Red Hat Enterprise Linux operating system in little-endian mode.

Support is available for GPU processing, helping to easily improve performance for applications using BLAS3, LAPACK, and FFT subroutines.



Back to topBack to top

Product positioning

Top rule

Use ESSL when you need outstanding performance through simple subroutine calls from floating-point engineering and scientific applications running on IBM Power Systems servers.



Back to topBack to top

Highlights

Top rule

IBM Engineering and Scientific Subroutine Library (ESSL) for Linux on Power, V6 provides Vector Scalar Extension (VSX) (SIMD) versions of most BLAS and FFT subroutines and is tuned for performance on select IBM Power Systems servers in little-endian mode running Red Hat Enterprise Linux. Support is provided for GPU processing.



Back to topBack to top

Description

Top rule

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

All ESSL libraries provide high levels of performance for numerically intensive computing jobs on the respective processors. All versions provide mathematically equivalent results.

These mathematical subroutines are tuned for performance on IBM POWER8, POWER9, or Power10 technology-based processors.

ESSL provides the following runtime libraries:

  • 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 on these respective processors. All versions provide mathematically equivalent results.
  • 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.
  • The ESSL SMP CUDA Library provides the following options for a subset of ESSL subroutines:
    • Use one or more NVIDIA GPUs
    • Use one or more NVIDIA GPUs and POWER CPUs

All ESSL libraries contain a VSX (SIMD) version of selected subroutines for use on POWER8 and POWER9 processor-based servers. These libraries support the following application environments:

  • 32-bit integers and 64-bit pointers
  • 64-bit integers and 64-bit pointers (ESSL Serial and SMP Libraries only)

The ESSL subroutines can be called from application programs written in Fortran, C, and C++ running the Linux operating system.

The ESSL libraries also provide the BLAS and CBLAS subroutines which can be used with netlib-java and Python (Numpy and Scipy).

Usability

ESSL is designed for usability:

  • Includes an easy-to-use call interface.
  • Supports two 64-bit environments, LP64 and ILP64. The LP64 data model supports 32-bit integers and 64-bit pointers, and the ILP64 data model supports 64-bit integers and 64-bit pointers. In accordance with the LP64 data model, all ESSL integer arguments remain 32-bit except the 'iusadr' argument for ERRSET.
  • 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.
  • Delivers informative error-handling capabilities, enabling you to calculate auxiliary storage sizes and transform lengths.
  • Includes an online book that can be displayed using an HTML document browser is available for use with ESSL.
  • Provides man pages of the subroutine descriptions are provided.

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

The subroutines provided in ESSL fall into the following groups:

  • Nine major areas of mathematical computation, providing the computations commonly used by the industry applications listed above
  • Utilities, performing general-purpose functions

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

Accuracy of the computations

ESSL is designed to provide 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. The data types operated on by the short- precision, long-precision, and integer versions of the subroutines are ANSI/IEEE 32-and 64-bit binary floating-point format.

High performance of ESSL algorithms

The ESSL subroutines are designed to provide high performance. To achieve this performance, the subroutines use innovative 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.
  • Structuring the ESSL subroutines so, where applicable, the compiled code fully utilizes all floating-point execution units.
  • Structuring the ESSL subroutines so, where applicable, the compiled code takes full advantage of the hardware data prefetching.
  • Using algorithms that minimize paging.

For details, see the "High Performance of ESSL" topic in the

ESSL Guide and Reference.

The FORTRAN language interface to the subroutines

  • The ESSL subroutines follow standard FORTRAN calling conventions and must run in the FORTRAN runtime 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.

ESSL 6.1 is enhanced by adding additional subroutines, and adding GPU support to additional exiting subroutines:

BLAS and CBLAS:

  • SAXPBY and DAXPBY (Scales Vector X and Vector Y by two Scalars, Adds them to one another, and Stores in the Vector Y)
  • DGEMMT (Combined Matrix Multiplication and Addition for General Matrices, Their Transposes, or Conjugate Transposes but update only the upper or lower triangular portion of the Array C) (Version 6.2.1)

LAPACK and LAPACKE:

  • CLANSY and ZLANSY (Complex Symmetric Matrix Norm)
  • SSYEVR, DSYEVR, CHEEVR, and ZHEEVR (Eigenvalues, and optionally, the Eigenvectors of a Real Symmetric or Complex Hermitian Matrix)
  • SSYGVD, DSYGVD, CHEGVD, and ZHEGVD (Eigenvalues, and optionally, the Eigenvectors of a Positive Definite Real Symmetric or Complex Hermitian Generalized Eigenproblem using a Divide-and-Conquer Algorithm)
  • SSYGV, DSYGV, CHEGV, and ZHEGV (Eigenvalues, and optionally, the Eigenvectors of a Positive Definite Real Symmetric or Complex Hermitian Generalized Eigenproblem)
  • SLAMCH and DLAMCH (Determines machine parameters for floating- point arithmetic)

LAPACK GPU support:

  • SGESV, DGESV, CGESV, and ZGESV (General Matrix Factorization and Multiple Right-Hand Side Solve)
  • SGETRF, DGETRF, CGETRF, and ZGETRF (General Matrix Factorization)
  • SGETRS, DGETRS, CGETRS, and ZGETRS (General Matrix Multiple Right-Hand Side Solve)
  • SPOSV, DPOSV, CPOSV, and ZPOSV (Positive Definite Real Symmetric or Complex Hermitian Matrix Factorization and Multiple Right-Hand Side Solve)
  • SPOTRF, DPOTRF, CPOTRF, and ZPOTRF (Positive Definite Real Symmetric or Complex Hermitian Matrix Factorization)
  • SPOTRS, DPOTRS, CPOTRS, and ZPOTRS (Positive Definite Real Symmetric or Complex Hermitian Matrix Multiple Right-Hand Side Solve)
  • SPPSV, DPPSV, CPPSV, and ZPPSV (Positive Definite Real Symmetric or Complex Hermitian Matrix Factorization and Multiple Right-Hand Side Solve)
  • SPPTRF, DPPTRF, CPPTRF, and ZPPTRF (Positive Definite Real Symmetric or Complex Hermitian Matrix Factorization)
  • SPPTRS, DPPTRS, CPPTRS, and ZPPTRS (Positive Definite Real Symmetric or Complex Hermitian Matrix Multiple Right-Hand Side Solve)
  • SGEQRF, DGEQRF, CGEQRF, and ZGEQRF (General Matrix QR Factorization)
  • SGELS, DGELS, CGELS, and ZGELS (Linear Least Squares Solution for a General Matrix)

Fourier Transforms GPU support:

  • SCFTD and DCFTD (Multidimensional Complex Fourier Transform)
  • SRCFTD and DRCFTD (Multidimensional Real-to-Complex Fourier Transform)
  • SCRFTD and DCRFTD (Multidimensional Complex-to-Real Fourier Transform)

The following subroutines are added to version 6.2:

LAPACK and LAPACKE subroutines:

  • SSBEV, DSBEV, CHBEV, and ZHBEV (Eigenvalues, and optionally, the Eigenvectors of a Real Symmetric or Complex Hermitian Band Matrix)
  • SGEES, DGEES, CGEES, and ZGEES (Eigenvalues, the Schur form, and, optionally, the matrix of Schur vectors of a General Matrix)
  • SGEESX, DGEESX, CGEESX, and ZGEESX (Eigenvalues, the Schur form, and, optionally, the matrix of Schur vectors and reciprocal condition numbers of a General Matrix)
  • SGEQP3, DGEQP3, CGEQP3, and ZGEQP3 (General Matrix QR Factorization 6.2.1)

Additionally, GPU support, providing improved performance, has been added for the following subroutines:

LAPACK:

  • SGETRI, DGETRI, CGETRI, and ZGETRI (General Matrix Inverse)
  • SPOTRI, DPOTRI, CPOTRI, and ZPOTRI (Positive Definite Real Symmetric or Complex Hermitian Matrix Inverse)

The following packaging enhancement has been added to version 6.2:

  • Flexible license check to support the co-existence of multiple releases and fixes

The following are added in version 6.3:

  • New ESSL LAPACK and LAPACKE subroutines:
    • SGGSVD3 and DGGSVD3 (Generalized Singular Value Decomposition for General Matrices)
  • New ESSL LAPACK GPU support:
    • SPPTRF, DPPTRF, SPPTRS, DPPTRS, SPPSV, DPPSV, SPPTRI, DPPTRI (Positive Definite Real Symmetric Matrix Factorization, Solve and Inverse)

Note: Support for IBM POWER8 CPU and GPUis no longer available.

For the list of FFTW subroutines supported, restrictions on their use, and instructions on how to build, install, and use the ESSL FFTW Wrappers Library, see the ESSL Guide and Reference.



Back to topBack to top

Operating environment

Top rule

Hardware requirements

ESSL for Linux on Power 6.3 is supported on all POWER9 and POWER10 processor-based servers. There is no support for IBM POWER8 processor-based servers.

  • The ESSL SMP CUDA Library is supported on the IBM Power System AC922 (8335-GTH, 8335-GTX, 8335-GTG, 8335-GTC, and 8335-GTW) servers that include Tesla V100 with NVLink GPUs.
  • Only the ESSL CPU libraries are supported on the IBM Power System IC922 (9183-22x) server. The ESSL SMP CUDA Libary is not supported on the IC922 server with NVIDIA T4 GPUs.

ESSL for Linux on Power, 6.1 and 6.2 are supported on all IBM POWER8 and IBM POWER9 processor-based servers.

The ESSL SMP CUDA Library is supported only on:

  • IBM Power System AC922 (8335-GTH and 8335-GTX) servers that include Tesla V100 with NVLink GPUs (service update required)
  • IBM Power System AC922 (8335-GTG, 8335-GTC and 8335-GTW) servers that include Tesla V100 with NVLink GPUs
  • IBM Power System S822LC (8335-GTB) servers with NVIDIA P100 GPUs.

Note: ESSL CPU only is supported on the IBM Power System IC922 (9183-22x) Servers. There is no support for the NVIDIA T4 GPUs.

Software requirements

ESSL for Linux on Power 6.3

  • Supported environment: Red Hat Enterprise Linux 8.1, or 8.4, and CUDA 11.

ESSL for Linux on Power 6.2.1.1

Supported operating system:

  • Red Hat Enterprise Linux 7.6 for Power Little Endian (POWER9 only)
  • Red Hat Enterprise Linux 7.6 (little endian mode) (POWER8 only)
  • Red Hat Enterprise Linux 7.7 for Power Little Endian (POWER8)

For compiling, one of these:

  • IBM XL Fortran for Linux 16.1.1, with the latest service level.
  • IBM XL C/C++ for Linux 16.1.1, with the latest service level.
  • gcc and g++: Use the GCC compiler and libraries provided with your Linux distribution.

For linking, loading, or running:

  • IBM XL Fortran Runtime Environment for Linux, 16.1.1, with the latest service level.
  • gcc 64-bit libraries, provided with the Linux distribution.
  • CUDA Toolkit 10.1, Update 2 (POWER9 and POWER8).
  • CUDA Toolkit 10.2 (POWER8 only).
    Note: The CUDA Toolkit is needed if the ESSL SMP CUDA library is used.

ESSL for Linux on Power 6.1:

Supported operating system:

  • Red Hat Enterprise Linux 7.5 for Power Little Endian (POWER9 only)
  • Red Hat Enterprise Linux 7.5 (little endian mode)(POWER8 only)

For compiling, one of these:

  • IBM XL Fortran for Linux 15.1.6, or 16.1.0, with the latest service level.
  • IBM XL C/C++ for Linux 13.1.6, or 16.1.0, with the latest service level.
  • gcc and g++: Use the GCC compiler and libraries provided with your Linux distribution.

For linking, loading, or running:

  • IBM XL Fortran Runtime Environment for Linux 15.1.6, or 16.1.0, with the latest service level.
  • gcc 64-bit libraries, provided with the Linux distribution.
  • CUDA Toolkit 9.2 (if the ESSL SMP CUDA library is used).

Note: The ESSL SMP libraries require the XL OpenMP runtime. The gcc OpenMP runtime is not compatible with the XL OpenMP runtime. Therefore, the ESSL SMP libraries can only be used with other compilers if the program calling ESSL is a serial program (does not use OpenMP) because in this case only the XL OpenMP runtime is used.

Back to topBack to top

Planning information

Top rule

Customer responsibilities

The customer is responsible for evaluation, selection, and implementation of security features, administrative procedures, and appropriate controls in application systems and communication facilities.

Compatibility

The calling sequences for the subroutines in ESSL for Linux on Power, 6.1 and ESSL for Linux on Power, 6.2 are identical; therefore, no changes to your application programs are required.

The calling sequences for the subroutines in ESSL for Linux on Power, 5.5 and ESSL for Linux on Power, 6.1 are identical; therefore, no changes to your application programs are required.

For supported levels, compatibility, and limitations regarding InfiniBand switch support, see the README shipped with the product.

The calling sequence for all subroutines except the CBLAS subroutines in ESSL 5.5 and 6.1 are identical, and therefore no changes to your application programs for these subroutines are required. However, if your programs contain calls to certain CBLAS functions, changes are required. See the chapter "Migrating Your programs" in the ESSL Guide and Reference.



Back to topBack to top

Publications

Top rule

No publications are shipped with this program.

The following publications are available from IBM Knowledge Center:

  • IBM ESSL Guide and Reference
  • IBM ESSL for Linux on Power Installation Guide

IBM Knowledge Center is a worldwide central repository of IBM technical publications hosted in a single application. You can find and navigate technical content more efficiently and easily with improved search, filtering, and user experience. Create your own collections of IBM documents with PDF output on demand.



Back to topBack to top

Security, auditability, and control

Top rule

ESSL for Linux on POWER uses the security and auditability features of the Linux operating system it is installed on.



Back to topBack to top

Trademarks

Top rule

(R), (TM), * Trademark or registered trademark of International Business Machines Corporation.

** Company, product, or service name may be a trademark or service mark of others.

Terms of use

IBM products and services which are announced and available in your country can be ordered under the applicable standard agreements, terms, conditions, and prices in effect at the time. IBM reserves the right to modify or withdraw this Sales Manual at any time without notice. This Sales Manual is provided for your information only. Additional terms of use are located at

Terms of use


© IBM Corporation 2021.