Sun S3L 3.0 Programming and Reference Guide

Chapter 1 Introduction to Sun S3L

This chapter contains general information about the Sun Scalable Scientific Subroutine Library (Sun S3L).

Sun S3L Overview

Sun S3L provides a set of parallel and scalable functions and tools widely used in scientific and engineering computing. It can be used on all Sun HPC Systems, from a single processor on an SMP, through multiple processors on a stand-alone SMP, to a cluster of SMPs.

The chief advantages offered by Sun S3L are summarized below.

Sun S3L uses array handles to provide array syntax support to message-passing programs. Array handles, which are closely analogous to the array descriptors found in the public domain packages ScaLAPACK and PETSc, facilitate argument passing by encapsulating information about distributed arrays.

Sun S3L operates on multidimensional arrays of up to 32 dimensions. This means it implements the multiple-instance paradigm, where the same function is applied to multiple, disjoint data sets concurrently.

The Sun S3L user interface includes a communicator setup routine that allows Sun S3L functions to be used in multithreaded applications. This routine causes Sun S3L to establish an independent Sun MPI communicator and thread-safe data for each thread from which the routine is called.

Sun S3L routines implement the Sun Performance Library for nodal operations. This is a collection of libraries for dense linear algebra and Fourier transforms based on the standard libraries BLAS, LINPACK, LAPACK, FFTPACK, and VFFTPACK. Besides providing appropriate nodal support to Sun S3L, routines from the Sun Performance Library can be called independently from any user codes running locally on a Sun Ultra HPC Server node.


Note -

The Sun Performance Library is available to Sun S3L users as part of WorkShop Compilers Fortran or Performance WorkShop Fortran, v4.2 and v5.0.


Sun S3L routines operate on objects of various data types. However, this information is encoded in the array handle and is decoded at run time, allowing appropriate branching to occur during execution. Consequently, there is no need for separate routines with different names to implement the different data types; a single routine suffices for all types.

An extensive set of online examples illustrate correct use of all Sun S3L functions. These examples can be used as templates in developing actual code. Separate examples are provided to demonstrate C and Fortran interfaces.

Contents of Sun S3L

Sun S3L consists of a set of core library functions--that is, subroutines that perform the linear algebra, Fourier transform, and other scientific computations--plus a set of auxiliary utilities, referred to as the toolkit functions.

The toolkit functions are introduced in "Sun S3L Toolkit Functions", with detailed descriptions provided in Chapter 7, Sun S3L Toolkit Routines. The core library functions are introduced in "Core Scientific Library Routines", with detailed descriptions in Chapter 8, Sun S3L Core Library Functions. They are also described in their online man pages.

Many of the Sun S3L core routines support the corresponding ScaLAPACK application programming interfaces (APIs). Table 1-1 lists the ScaLAPACK APIs that are supported.

Table 1-1 Supported ScaLAPACK APIs

Category 

Routine 

PBLAS 1,2,3 

p{s,d}dot, p{c,z}dotu, p{s,d}nrm2, p{sc,dz}nrm2, p{s,d}ger, p{c,z}geru, p{s,d,c,z}gemv, p{s,d,c,z}gemm

LU factor, solve, inverse 

p{s,d,c,z}getrf,p{c,d,c,z}getrs,p{c,d,c,z}getri

Tridiagonal solvers 

p{s,d,c,z}dttrf, p{s,d,c,z}dttrs

Banded solvers 

 

p(s,d,c,z)gbsv, p(s,d,c,z)gbtrf, p(s,d,c,z)gbtrs 

Symmetric eigensolver 

p{s,d}syevx, p{c,z}heevx

Singular Value Decomposition 

p{s,d,c,z}geqrf

Least Squares Solver 

p{s,d,c,z}gels

Sun S3L Toolkit Functions

Sun S3L includes an extensive set of functions that enable Sun MPI programmers to perform a variety of auxiliary tasks, such as:

Core Scientific Library Routines

The Sun S3L core routines consist of: