Sun WorkShop(TM) 6 Performance Library README
Updated 2000/04/04
This document contains last minute information about the Sun WorkShop 6 Performance Library.

To view the text version of this document, type the following at a command prompt: 

   example% more /opt/SUNWspro/READMEs/performance_library
To access the HTML version of this document, point your Netscape(TM) Communicator 4 or compatible browser to: 


Note: If your Sun WorkShop software is not installed in the standard /opt directory, ask your system administrator for the equivalent path on your system. 

For more information about this product, see: 

  • Sun WorkShop 6 Release Notes -- This documentation describes installation-related and late-breaking information about this release. Information in the release notes overrides information in all readme files. 
  • Man pages for the Sun Performance Library, which are in section man 3P (man -s 3P function_name)
These documents are accessible in HTML by pointing your browser to file:/opt/SUNWspro/docs/index.html. If your Sun WorkShop software is not installed in the /opt directory, ask your system administrator for the equivalent path on your system. 


  • Introduction
  • New Features 
  • General Features
  • Compatibility
  • Documentation

  • Introduction

    Sun Performance Library is a set of optimized, high-speed mathematical subroutines for solving linear algebra and other numerically intensive problems. Sun Performance Library is based on a collection of public domain applications available from Netlib at Sun has enhanced these public domain applications and bundled them as the Sun Performance Library.

    Sun Performance Library contains enhanced versions of the following standard libraries:

  • LAPACK version 3.0 - For solving linear algebra problems.
  • BLAS1 (Basic Linear Algebra Subprograms) - For performing vector-vector operations. 
  • BLAS2 - For performing matrix-vector operations. 
  • BLAS3 - For performing matrix-matrix operations. 
  • FFTPACK version 4 - For performing the fast Fourier transform of periodic sequences.
  • VFFTPACK version 2.1 - A vectorized version of FFTPACK for performing the fast Fourier transform.

  • New Features

    This release of Sun Performance Library provides the following new features:
  • Support for LAPACK 3.0 
  • Sparse solver package 
  • UltraSPARC III (TM) Support
  • Fortran 95 language support
  • Changes to Sun Performance Library licensing
  • Support for LAPACK 3.0

    LAPACK 3.0 subroutines have been added. The previous version of Sun Performance Library was based on LAPACK 2.0. The current version of Sun Performance Library still maintains compatibility with LAPACK 1.x and LAPACK 2.0.

    Sparse Solver Package

    The sparse solver package provides routines for solving  sparse matrices (symmetric, structurally symmetric, and unsymmetric coefficient matrices) using direct methods and provides a choice of fill-reducing ordering algorithms, including user specified orderings. 

    UltraSPARC III (TM) Support

    To use the code that is specific to UltraSPARC III, compile with -xarch=v8plusb for 32-bit code or -xarch=v9b for 64-bit code.

    Fortran 95 Language Feature Support

    By including the f95 statement USE SUNPERF in your program, you will be able to use the Performance Library modules and definitions.  This enables the following features:
  • Type independence -  In the FORTRAN 77 routines, you must specify the type as part of the name. In Fortran 95, a routine for a specific data type can be determined by the data type of the arguments passed to the routine rather than by specifying the entire routine name.
  • Compile-time checking -  In FORTRAN 77, it is generally impossible for the compiler to know what parameters should be passed to a particular routine.  In Fortran 95, the USE SUNPERF statement allows the compiler to know what the number, type, size, and shape of each parameter to each Sun Performance Library routine should be.  It can check your calls against the expected value and point out errors during compilation.
  • Optional parameters - In FORTRAN 77, all parameters must be specified in order for all routines.  Fortran 95 allows some parameters to be optional.  In Sun Performance Library, all increment parameters (INCX, INCY, etc.), workspaces, leading dimensions (LDA, LDB, etc.), and length/size parameters are optional.
  • For information on using these features and examples, refer to the Sun Performance Library User's Guide.

    Changes to Sun Performance Library Licensing

    Sun Performance Library is no longer licensed.  However, you should continue to link with -xlic_lib=sunperf rather than -lsunperf. -xlic_lib=sunperf has many semantics in addition to handling  licensing, some of which are:
  • Link with the correct support libraries. In this release, Sun Performance Library is compiled with Fortran 95 instead of  FORTRAN 77 as in previous releases.  -xlic_lib will correctly  link in the Fortran 95 run time libraries  instead of the FORTRAN 77 run-time libraries.
  • Use the right version of Sun Performance Library. There are  different versions of Sun Performance Library to support programs built with -xparallel versus without and for different values of -xarch.  Using -xlic_lib=sunperf will cause the driver to use the version of Sun Performance Library that matches your command line options. If you link with -lsunperf or -lsunperf_mt then you must be sure  to correctly handle all of the semantics yourself.

  • General Features

    Sun Performance Library provides the following additional features
  • 64-bit code on UltraSPARC support
  • Optimizations for shared and dedicated parallelization modes
  • 64-Bit Code on UltraSPARC Support

    To use the  64-bit code, compile with -xarch=v9[a|b]. For information on converting integer arguments to 64-bit arguments, refer to the Sun Performance Library User's Guide.

    Parallel Model Choice

    You can choose a model of parallelism that is optimized for a dedicated machine or for a shared machine by selecting the appropriate library.
  • Shared multiprocessor library:  libsunperf.a or
  • Dedicated multiprocessor library:  libsunperf_mt.a or

  • On a dedicated system, the dedicated model can be somewhat faster than the shared model due to lower synchronization overhead. On a system running many different tasks, the shared model provides better cooperation in the use of available resources.


    The LAPACK 3.0 routines in Sun Performance Library are compatible with the user routines from previous versions of LAPACK including 1.x and 2.0 and with all routines in LAPACK 3.0.  However, due to internal changes in LAPACK 3.0 , compatibility with internal routines cannot be guaranteed.  Internal routines that might be incompatible are called 'auxiliary' routines in the LAPACK source code available from Netlib. Some information on auxiliary routines is included in the LAPACK Users' Guide, available from the Society for Industrial and Applied Mathematics (SIAM) .


    The following Sun Performance Library documentation is available:
  •  Man pages  (section 3P) for each function and subroutine in the library
  • Sun Performance Library User's Guide, which describes and shows examples for:
  • Using Sun Performance Library routines
  • Using the Fortran and C interfaces
  • Using optimization and parallelization options
  • Using the sparse solver package
  • Sun Performance Library Reference Manual (html only)
  •  The following books are available from the SIAM or your local bookstore:
  • LAPACK Users' Guide, 3rd ed., by Anderson E. and others, SIAM, 1999
  • LINPACK User's Guide, by Dongarra J.J. and others, SIAM, 1979
  • The LAPACK Users' Guide is the official reference for the base LAPACK 3.0 routines available on Netlib and provides mathematical descriptions of the LAPACK 3.0 routines. 

    Copyright 2000 Sun Microsystems, Inc., 901 San Antonio Road, Palo Alto, CA 94303, U.S.A. All rights reserved. 

    Sun, Sun Microsystems, the Sun logo,, and Solaris are trademarks, registered trademarks, or service marks of Sun Microsystems, Inc. in the U.S. and other countries.