NCCS | User Info | search  


Cheetah Software: Languages, Libraries, Applications, and Tools

This page lists tools and software available on the Cheetah p690 system at ORNL. If you have any further questions or comments, please send them to consult@ccs.ornl.gov.

Note: To find out the version of an IBM software use:
   lslpp -l | grep software_name
For other non-IBM software, look in the directory
   /apps/software_name/prod/machine
and see where the symbolic links points to. Here, machine is for example rs_aix51_32, for RISK AIX5.1 32 bit implementation, or rs_aix51_64, also RISK AIX5.1 but 64 bit implementation.


Languages

Fortran

  • xlf, f77, xlf90, xlf95 - serial IBM Fortran compilers installed in /usr/bin
  • xlf_r, xlf90_r, xlf95_r - thread-safe IBM Fortran compilers installed in /usr/bin. These compilers support OpenMP.
  • mpxlf, mpxlf90, mpxlf95 - a shell script that compiles Fortran programs while linking in the Partition Manager, Message Passing Interface (MPI), and Message Passing Library (MPL) installed in the /usr/bin. Note that this links to IBM's MPI.
  • mpxlf_r, mpxlf90_r, mpxlf95_r - a shell script that compiles Fortran programs while linking in the thread-safe Partition Manager, Message Passing Interface (MPI), and Message Passing Library (MPL) installed in the /usr/bin. Note that this links to IBM's MPI.
  • xxlf - an x-windows interface to the xlf compiler, located in /usr/bin

For more information on the Fortran compilers, consider the following

IBM C and C++

  • xlc - IBM C compiler installed in /usr/bin
  • xlC - IBM VisualAge C++ compiler installed in /usr/bin. This version supports templates and the Standard Template Library.
  • xlc_r - thread-safe IBM C compiler installed in the /usr/bin. xlc_r supports OpenMP
  • xlC_r - thread-safe IBM VisualAge C++ compiler installed in the /usr/bin. This version supports templates and the Standard Template Library.
  • mpcc - a shell script that compiles C programs while linking in the LoadLeveler, Message Passing Interface (MPI), and LAPI installed in the /usr/bin. mpcc links with IBM's version of MPI.
  • mpcc_r - a shell script that compiles C programs while linking to the thread-safe LoadLeveler, Message Passing Interface (MPI), and LAPI installed in /usr/bin. mpcc_r links with IBM's version of MPI.

For more information on the IBM C compilers, consider the following

Gnu C and C++

  • gcc, g++, and g77 - GNU Project C, C++ and F77 compilers can be reached from /usr/local/bin/gcc, /usr/local/bin/g++, and /usr/local/bin/g77.
  • gdb, - GNU Project debugger is located in /usr/local/bin/gdb.

For more information on the IBM C compilers, consider the following

Java

  • javac - IBM Java class compiler:   the default (version 1.4, 64bit) is installed in /usr/java14_64/bin/javac, however the 1.3 version is available in /usr/java130/bin/javac
  • java - IBM Java interpreter:   the default is installed in /usr/java14_64/bin/java, however the 1.3 version is available in /usr/java130/bin

Perl

Perl is a high-level programming language. It is primarily derived from the the C programming language. It has process, file and text manipulation facilities that make it particularly well-suited for tasts involving quick prototyping, system utilities, software tools, system management tasks, database access, graphical programming and web programming. The Perl 5.6 interpreter is installed in /usr/bin.

For more information, consult the Perl home page.

Python

Python is an interpreted, interactive, object-oriented programming language. It incorporate modules, exceptions, dynamic typing, high level dynamic data types, and classes. The Python interpreter is available in /usr/local/bin

For more information, consult the Python home page.

Tcl/Tk

Tcl (Tool Control Language) is an interpreted scripting language that is mostly used for building graphical user interfaces.

Tk is a graphical toolkit that gives one access to many of the graphics primitives of the underlying windowing system, as well as providing access to many types of widgets, such as buttons, scrollbars, menus, and text boxes.

Version 8 of Tcl and Tk are installed on Cheetah in /usr/local/lib.

For more information, consult Tcl/Tk Information.
There are also man pages on Tcl/Tk like   man tk and  man n info.


Libraries

ABAQUS

ABAQUS is a software for advanced finite element analysis. It provides solutions for linear, non-linear, explicit and multi-body dynamics problems to deliver a unified finite element analysis environment.

On Cheetah ABAQUS can be found at /usr/local/bin/abaqus.

For more information see the ABAQUS home page.

ACTS

The Advanced Computational Testing and Simulation (ACTS) Toolkit is a set of DOE-developed software tools that make it easier for programmers to write high performance scientific applications for parallel computers.

ACTS is divided into 4 areas in which there are several software tools each. Currently, we only have some of the ACTS Toolkit installed. In the list below, those tools listed with a link are installed.

See The ACTS Toolkit Homepage and The ACTS Tool Descriptions for more information.

ARPACK

ARPACK is a collection of Fortran77 subroutines designed to solve large scale eigenvalue problems.

The package is designed to compute a few eigenvalues and corresponding eigenvectors of a general n by n matrix A. It is most appropriate for large sparse or structured matrices A where structured means that a matrix-vector product w = Av requires order n rather than the usual order n2 floating point operations. This software is based upon an algorithmic variant of the Arnoldi process called the Implicitly Restarted Arnoldi Method (IRAM). When the matrix A is symmetric it reduces to a variant of the Lanczos process called the Implicitly Restarted Lanczos Method (IRLM). These variants may be viewed as a synthesis of the Arnoldi/Lanczos process with the Implicitly Shifted QR technique that is suitable for large scale problems. For many standard problems, a matrix factorization is not required. Only the action of the matrix on a vector is needed.

ARPACK software is capable of solving large scale symmetric, nonsymmetric, and generalized eigenproblems from significant application areas. The software is designed to compute a few (k) eigenvalues with user specified features such as those of largest real part or largest magnitude. Storage requirements are on the order of n*k locations. No auxiliary storage is required. A set of Schur basis vectors for the desired k-dimensional eigen-space is computed which is numerically orthogonal to working precision. Numerically accurate eigenvectors are available on request

On Cheetah the arpack96 and parpack96 libraries (libarpack.a, libparpack_BLACS.a, and libparpack_MPI.a) can be found in /usr/apps/lib/

For more information see the ARPACK homepage

ATLAS

ATLAS is the Automatically Tuned Linear Algebra Software package. It provides an automatically optimized version of the BLAS routines (both C and Fortran 77 interfaces) as well as a small subset of the LAPACK API.

On Cheetah ATLAS can be found in /apps/ATLAS/prod/rs4_aix51_32/lib. It contains not only the libatlas.a but also the rebuilt libcblas.a, libf77blas.a, and liblapack.a.

For more information see the ATLAS sourceforge home page.

AZTEC

AZTEC is a massively parallel iterative solver library for solving sparse linear systems. Aztec is easy-to-use and efficient. Its simplicity is attained through its use of a global distributed matrix.

The Aztec library is installed on Cheetah in /usr/apps/lib/libaztec.a. The Aztec header files are located in /usr/apps/include and named az_aztec.h, az_aztec_defs.h, and az_aztecf.h.

For more information see the AZTEC homepage

BLACS

The Basic Linear Algebra Communication Subprograms (BLACS), is a library constructed by the ScaLAPACK team. It is intended for use in numerical programming where communication involves two-dimensional portions of arrays. BLACS is built on top of the MPI libraries.

There are basically two BLACS libraries installed. One version comes from IBM and is found in /usr/lib. In actuality, IBM provides a libblacs.a and a libblacssmp.a. The libblacssmp.a must be used if you use a reentrant compiler (_r). There is also a locally compiled BLACS library in /usr/apps/lib. This library is actually composed of three different libraries: libblacsF77init.a, libblacsCinit.a, and libblacs.a. The BLACS library is typically used when using the ScaLAPACK library. In this case, if you use the ScaLAPACK from /usr/apps/lib, then use the BLACS in that same directory. If you use ScaLAPACK type solvers from PESSL, then use the BLACS in /usr/lib.

For example, to compile and link your program (file.c of file.f) to the BLACS libraries, you must use the following:

f77 -o file file.f -L/usr/apps/lib -lblacsF77init -lblacs
or
xlc -o file file.c -L/usr/apps/lib -lblacsCinit -lblacs
based on the language you used.

For more information see the BLACS Home Page.

BLAS

BLAS, the Basic Linear Algebra Subprograms, are portable and efficient routines that perform vector and matrix operations. The Level 1 BLAS do vector-vector operations, the Level 2 BLAS do matrix-vector operations, and the Level 3 BLAS do matrix-matrix operations. Because of their efficiency, BLAS routines are commonly used in the development of high-quality linear-algebra software such as LAPACK and LINPACK.

BLAS is in ESSL, so please see the ESSL info below for information on linking.

For more information see the BLAS Home Page .

ESSL

The Engineering and Scientific Subroutine Library (ESSL) is a library of mathematical subroutines that have been highly optimized for the SP family of machines and so run much faster than equivalent routines from other libraries.

On Cheetah, the ESSL routines are installed in /usr/lib and there are 3 different libraries that you could link to:

  • libessl.a for a standard serial library, or
  • libessl_r.a for a thread-safe library,
  • libesslsmp.a for a shared-memory parallel library.

If you want Parallel ESSL go to PESSL

There are several ESSL resources

FFTPack

FFTPACK is a package of Fortran subprograms for the fast Fourier transform of periodic and other symmetric sequences. It includes complex, real, sine, cosine, and quarter-wave transforms. The library is in /usr/apps/lib and named libfftpack.a (and also libdfftpack.a).
Note that ESSL also contains FFT routines.

For more information see the FFTPACK home page.

FFTW

FFTW is a C subroutine library for computing the Discrete Fourier Transform (DFT) in one or more dimensions, of both real and complex data, and of arbitrary input size. The FFTW libraries can be reached from /usr/apps/lib, and they are libfftw.a, libfftw_threads.a, librfftw_mpi.a, libfftw_mpi.a, librfftw.a, and librfftw_threads.a.

Many benchmarks show that FFTW's performance is typically superior to that of other publicly available FFT software. Moreover, FFTW's performance is portable: the program will perform well on most architectures without modification.

FFTW appears to be the fastest program most of the time for in-order transforms, especially in the multi-dimensional and real-complex cases. Hence the name, "FFTW," which stands for the somewhat whimsical title of "Fastest Fourier Transform in the West." Please visit the benchFFT home page for a more extensive survey of the results

For more information see the FFTW home page.

GAMESS

GAMESS, the General Atomic and Molecular Electronic Structure System is a general ab initio quantum chemistry package. GAMESS can compute SCF wavefunctions ranging from RHF, ROHF, UHF, GVB, and MCSCF. Correlation corrections to these SCF wavefunctions include Configuration Interaction, second order perturbation theory, and Coupled-Cluster approaches, as well as the Density Functional Theory approximation. Analytic gradients are available, for automatic geometry optimization, transition state searches, or reaction path following. Computation of the energy hessian permits prediction of vibrational frequencies.

On Cheetah GAMESS can be found in /usr/local/bin/rungms.

For more information see the GAMESS home page.

Global Arrays

The Global Arrays (GA) toolkit provides an efficient and portable "shared-memory" programming interface for distributed-memory computers. Each process in a MIMD parallel program can asynchronously access logical blocks of physically distributed dense multi-dimensional arrays, without need for explicit cooperation by other processes. Unlike other shared-memory environments, the GA model exposes to the programmer the non-uniform memory access (NUMA) characteristics of the high performance computers and acknowledges that access to a remote portion of the shared data is slower than to the local portion. The locality information for the shared data is available, and a direct access to the local portions of shared data is provided.

Global Arrays have been designed to complement rather than substitute for the message-passing programming model. The programmer is free to use both the shared-memory and message-passing paradigms in the same program, and to take advantage of existing message-passing software libraries. Global Arrays are compatible with the Message Passing Interface (MPI).

The Global Arrays toolkit has been in the public domain since 1994. It has been actively supported and employed in several large codes since then. For more information see the Global Arrays home page.

Currently found only in /apps/GA/<ver>/<machine> where ver is a particular version of the code and machine is something like ia64_rh7 (SGI Altix) or rs_aix51_32 (IBM). On Cheetah you will find these libraries in /apps/GA/3.3Beta/rs_aix51_32/g/lib/IBM, and /apps/GA/3.3Beta/rs_aix51_64/g/lib/IBM64

HDF

HDF stands for Hierarchical Data Format. It is designed to be a portable file format for scientific data management. The HDF software includes I/O libraries and tools for analyzing, visualizing, and converting scientific data. There are two HDF formats, HDF (4.x and previous releases) and HDF5. These formats are completely different and NOT compatible.

On Cheetah the HDF5 libraries can be reached from /usr/local/lib, while the HDF4 libraries can be found in /apps/HDF4.

For more information see the HDF home page.

LAPACK

LAPACK provides routines for solving systems of simultaneous linear equations, least-squares solutions of linear systems of equations, eigenvalue problems, and singular value problems. The associated matrix factorizations (LU, Cholesky, QR, SVD, Schur, generalized Schur) are also provided, as are related computations such as reordering of the Schur factorizations and estimating condition numbers. Dense and banded matrices are handled, but not general sparse matrices. In all areas, similar functionality is provided for real and complex matrices, in both single and double precision.

On Cheetah, the LAPACK library is found in /usr/apps/lib/liblapack.a. The LAPACK routines are built upon the BLAS routines. That's why you normally have to link with the libessl.a library also. For example, you may compile your file.f file as follows:

f77 -O4 -qnoipa -o file file.f -L/usr/apps/lib -llapack -lessl

Note that some of the LAPACK functionality is also in the ESSL library.

For more information on LAPACK, consult the LAPACK Home Page.

MASS

The Mathematical Acceleration SubSystem (MASS) consists of libraries of tuned mathematical intrinsic functions. MASS is currently at version 3.0. Each MASS version includes the material from pervious versions that has not been changed, except that Version 3.0 no longer includes the library that runs only on POWER2 processors. The POWER2 library remains available in Version 2.7 of MASS. MASS has a

  • scalar library (libmass.a)
  • general vector library (libmassv.a)
  • vector library tuned for POWER3 architecture (libmassvp3.a)
  • vector library tuned for POWER4 architecture (libmassvp4.a)

MASS libraries can be found in /usr/local/lib. The MASS header file massv.h can be found in /usr/local/include.

For more information see the IBM MASS web page.

METIS

METIS provides serial graph partitioning and sparse matrix reordering. It provides the following key components: graph partitioning, mesh partitioning, and fill-reducing reordering. It is available both as a set of stand-alone programs and as a library.

On Cheetah, the libraries can be found in /usr/local/lib/libmetis.a and /usr/local/lib64/libmetis.a.

For more information consult the METIS Homepage.

MPI

The Message Passing Interface (MPI) is a subroutine library for writing distributed memory parallel programs that conform to a vendor-independent standard and so are portable to many platforms. There are mpcc and mpxlf compilers on Cheetah, which are scripts that compile C and Fortran programs while linking them with an IBM version of MPI library libmpi.a. There are also threaded compilers mpcc_r and mpxlf_r which link to the thread-safe IBM MPI library libmpi_r.a. These are installed under /usr/lpp/ppe.poe/lib. If you use the IBM mp-compilers, you do not need to explicitly link to the MPI library.

For more information on MPI see the following resources

NetCDF

Network Common Data Form (NetCDF) is an interface for array-oriented data access and a library that provides an implementation of the interface. Version 3.5 of NetCDF is installed on Cheetah. The NetCDF executable is located at /usr/local/bin.

Several NetCDF libraries are available and they are listed below.

  • The C++ library is available at /usr/local/lib/libnetcdf_c++.a
  • The C, F77, and F90 library is available at /usr/local/lib/libnetcdf_c.a
  • The F77 library for codes compiled with "-qautodbl=dbl4", that is codes that use 8-byte reals and 4-byte integers, is available at /usr/local/lib/libnetcdf_real8.a.

You can access the C include files and the F90 ".mod" files using the following compiler option:

-I/usr/local/include

More information is available at NetCFD Unidata Homepage
and, on Cheetah by using man pages for

netcdf, netcdf.3f, netcdf.3f90, ncdump, ncgen, ncview

NCO: NetCDF Operators

NetCDF Operators (NCO) is a suite of operators that take NetCDF files as input, perform an operation on the file, and then output a NetCDF file. Version 2.0 is available on Cheetah. The NCO library is installed in /usr/local/lib/libnco.a.

For more information see

PAPI

The Performance API (PAPI) is a standard application programming interface for accessing hardware performance counters available on most modern microprocessors. PAPI provides two interfaces to the underlying counter hardware; a simple, high-level interface for the acquisition of simple measurements and a fully programmable, low level interface directed towards users with more sophisticated needs.

On cheetah, the PAPI library has been installed in /apps/PAPI/prod/rs4_aix51/lib.

For more information see the PAPI Homepage

PARMETIS

PARMETIS (Parallel METIS) provides parallel graph partitioning and sparse matrix reordering. It provides the following key components: static graph partitioning, dynamic graph partitioning, and fill-reducing reordering. It is available as an MPI library.

On Cheetah the ParMETIS library can be found in /usr/apps/lib/libparmetis.a.

For more information see the PARMETIS Homepage

PBLAS

Parallel Basic Linear Algebra Subroutines (PBLAS) for distributed memory MIMD computers. There are two libraries that contain PBLAS routines. IBM provides PBLAS routines in their PESSL library, and the PBLAS routines are also in the ScaLAPACK library libscalapack.a found in /usr/apps/lib. It is suggested that if you use the PBLAS in PESSL, that you use it in conjunction with the PESSL ScaLAPACK and the BLACS in /usr/lib. If you use ScaLAPACK from /usr/apps/lib, then you will automatically get the PBLAS in the same library.

To compile and link your code with the PBLAS libraries, you must use the following flags based on the language you used. For Fortran programs,

-L/usr/apps/lib -lscalapack -lblacsF77init -lblacs -lessl

For C programs use,

-L/usr/apps/lib -lscalapack -lblacsCinit -lblacs -lessl

For more information see

PESSL

Parallel ESSL (PESSL) is a scalable mathematical subroutine library that supports parallel processing applications running on the SP or workstation clusters. Parallel ESSL supports the Single Program Multiple Data (SPMD) programming model, where the programs running the parallel task are identical. The tasks, however, work on different sets of data. PESSL contains ScaLAPACK-like solvers and PBLAS routines. This library is usually used in conjunction with IBM's BLACS library.

The PESSL routines are installed in /usr/lib. Programs are usually compiled with the compiler flag -lpessl. If you compile your code with the thread-safe compilers, then link with the libpesslsmp.a PESSL library using the compiler flag -lpesslsmp. For the sequential library, see ESSL.

There are several ESSL and PESSL resources:

PETSC

PETSC, the Portable, Extensible Toolkit for Scientific computation, provides sets of tools for the parallel (as well as serial), numerical solution of PDEs that require solving large-scale, sparse nonlinear systems of equations. PETSc includes nonlinear and linear equation solvers that employ a variety of Newton techniques and Krylov subspace methods. PETSc provides several parallel sparse matrix formats, including compressed row, block compressed row, and block diagonal storage.

The PETSC library is installed on Cheetah at /apps/PETSC and /usr/local/ACTS/PETSC. Both version 2.1.5 and 2.1.6 are available. Unlike the other software packages, the PETSC installation retains the directory structure of the package. There are no symbolic links to its archive and header files. To use the package, you are required to specify the path of the files.

For more information see the following:

(ex) PVODE, (new) SUNDIALS

PVODE actually refers to a trio of closely related solvers:

  • CVODE for systems of ordinary differential equations
  • KINSOL for systems of nonlinear algebraic equations
  • IDA for systems of differential-algebraic equations

PVODE is a solver for large systems of ordinary differential equations on parallel machines. It contains methods for the solution of both stiff and non-stiff initial value problems. The name of this package has recently been changed to SUNDIALS ( SUite of Nonlinear and DIfferential/ALgebraic equation Solvers ).

On Cheetah the PVODE libraries are installed in /apps/PVODE/.

For more information see the following:

ScaLAPACK

ScaLAPACK is a library of high-performance linear algebra routines for distributed-memory message-passing MIMD computers and networks of workstations supporting PVM and/or MPI.

The freely available version of ScaLAPACK from Netlib is installed in /usr/apps/lib. There are also ScaLAPACK type solvers in PESSL.

To compile and link your code with the ScaLAPACK libraries, you must use the following linker flags:
     -L/usr/apps/lib -lscalapack -lblacsF77init -lblacs -lessl
or
     -L/usr/apps/lib -lscalapack -lblacsCinit -lblacs -lessl
depending on whether you program in FORTRAN or in C.

See the ScaLAPACK Home Page and ACTS: ScaLAPACK for more information.

SuperLU

SuperLU is a general purpose library for the direct solution of large, sparse, nonsymmetric systems of linear equations on high performance machines.

The library routines will perform an LU decomposition with partial pivoting and triangular system solves through forward and back substitution. The LU factorization routines can handle non-square matrices but the triangular solves are performed only for square matrices. The matrix columns may be preordered (before factorization) either through library or user supplied routines. This preordering for sparsity is completely separate from the factorization. Working precision iterative refinement subroutines are provided for improved backward stability. Routines are also provided to equilibrate the system, estimate the condition number, calculate the relative backward error, and estimate error bounds for the refined solutions.

SuperLU package comes in three different flavors:

  • SuperLU for sequential machines
  • SuperLU_MT for shared memory parallel machines
  • SuperLU_DIST for distributed memory

On Cheetah the SuperLU library is installed in /usr/local/ACTS/SUPERLU, and also in /apps/SUPERLU/2.0/rs4_aix51_32/lib. Both the serial, SUPERLU_2.0, and the distributed version, SUPERLU_DIST_1.0, were installed. They have the same directory structures as the other ACTS libraries. Example codes, make files, and LoadLeveler batch scripts can be found under examples/.

For more information see the SuperLU web page and also ACTS: SuperLU.

TurboMPI

TurboMPI is a small library of collective functions from the MPI API (such as broadcast, reduce, allreduce, barrier, alltoall) that are optimized for running MPI applications on shared memory nodes.

The Turbo library will work with any MPI application. To use it, simply link you MPI application with the Turbo library (-lturbo):

        mpxlf90_r your_mpi_code.f -lturbo

Version 2.0.0 contains

    mpi_barrier      mpi_allreduce      mpi_reduce
    mpi_bcast        mpi_alltoall       mpi_alltoallv

There are several environment variables allowing to control Turbompi behavior:

  MPJ_SHM_SIZE  size in MBytes of the shared segment on each node (default 160)
  MPJ_MTAB      max number of communicators       (default 20)
  MPJ_MPPN      number of processors per node     (default 32)
  MPJ_MNODE     number of nodes                   (default 64)

You can disable a routine by setting to 0 (1 for active) the following variables:

  MPJ_BARRIER     (default = 1)
  MPJ_ALLREDUCE   (default = 1)
  MPJ_REDUCE      (default = 1)
  MPJ_BCAST       (default = 1)
  MPJ_ALLTOALL    (default = 0) 1:development version, 2:turbompi tested version
  MPJ_ALLTOALLV   (default = 0)
  MPJ_INFO=1  (default = 0) give information about Turbompi

The TurboMPI library is installed in /usr/apps/lib/libturbo.a. You can find examples in the /apps/TurboMP/2.0.0/Examples directory.

For more information see the IBM TurboMP web page.

TurboSHMEM

TurboSHMEM is a fairly complete implementation of the SHMEM API popularized by Cray Research for their T3D/E systems. The implementation here uses IBM Low-Level API (LAPI) technology to obtain optimized one-sided communication for the put/get operations. This allows applications already written with the SHMEM API to run on IBM platforms with minimal source code changes.

Due to the evolution of LAPI, not to mention IBM POWER hardware over the last couple of years, some design decisions were made to simplify the maintenance of this library. This library is tuned to the current POWER4 hardware and its supporting software (PE 3.2). Although not optimal for POWER3 systems, it runs reasonably well on those systems, but is not "feature complete".

Limitations are as follows:

POWER4 (PE 3.2)
---------------
(1) 64-bit supported.
(2) Shared memory supported.
(3) Vector data movement supported.
(4) SP Switch supported.

TurboSHMEM is already enabled to use TurboMPI, which optimizes the collective functions on shared memory nodes. There is no need to add the -lturbo library. However, for environment variables associated with the turbo library, please see the TurboMPI section.

To use TurboSHMEM, use thread-safe compile invocation (e.g., _r versions).
For example compile with: mpxlf_r -q64 myprogram.f -L/usr/apps/lib -lsmaf .
Use libsmaf for Fortran and libsmac for C.
Then, in order to run the code, some environment variables must be set.

POWER4:
  MP_MSG_API=mpi,lapi
  MP_SHARED_MEMORY=yes
  MP_EUILIB=us 
  MP_RESD=no
  LAPI_USE_SHM=yes 

*** NOTE: LAPI cross memory kernel extension must be loaded in order to use LAPI_USE_SHM environment variable. See the PSSP 3.5 admin manual for details.

To execute the program use "poe a.out" just like with any other parallel program.

The TurboSHMEM libraries are installed in /usr/apps/lib. You can find examples in the /apps/TurboMP/2.0.0/Examples directory. There are several caveats when using TurboSHMEM. - please consult the README.TurboSHMEM file in /apps/TurboMP/2.0.0.

For more information see the IBM TurboMP web page.


Tools

dbx

dbx --- the IBM debugger for serial programs. Installed in /usr/bin.

See IBM Parallel Environment for AIX: Debugging and Visualizing for more information on debugging.

Ensight

Ensight is a tool for all types of engineering analysis, visualisation and communication.

On Cheetah, Ensight can be found in /usr/local/bin/ensight and /usr/local/bin/ensight74.

For more information see the Ensight web page.

gimp

The GNU Image Manipulation Program gimp is a freely distributed piece of software for tasks like photo retouching and image composition and authoring. It can be used as a simple paint program, an expert quality photo retouching program, an online batch processing system, a mass production image renderer, an image format converter, etc. It has most of the functionality of Photoshop but without the cost. GIMP also comes with extensive documentation for both users and programmers, including a manual, tutorials, examples of various features, links to other GIMP-related sites, and an extensive list of plug-ins.

On Cheetah gimp can be found in /usr/local/bin/gimp.

For more information see The Gimp homepage.

gnuplot

gnuplot is a command-driven interactive function plotting program. It can be used to plot functions and data points in both two- and three-dimensional plots in many different formats.

On Cheetah gnuplot can be found in /usr/local/bin/gnuplot.

For more information see the Gnuplot web page.

grace

grace Grace is a WYSIWYG 2D plotting tool. Its capabilities are roughly similar to GUI-based programs like Sigmaplot or Microcal Origin plus script-based tools like Gnuplot or Genplot. Its strength lies in the fact that it combines the convenience of a graphical user interface with the power of a scripting language which enables it to do sophisticated calculations or perform automated tasks. Grace is a descendant of ACE/gr, also known as Xmgr.

On Cheetah the Grace tools are installed in /apps/grace but they can be reached from /usr/local/bin/, with the commands convcal, fdf2fit, gracebat, grconvert, and xmgrace.

For more information see the Grace web page.

GrADS

The Grid Analysis and Display System (GrADS) is an interactive desktop tool that is used for easy access, manipulation, and visualization of earth science data. The format of the data may be either binary, GRIB, NetCDF, or HDF-SDS (Scientific Data Sets). GrADS has been implemented worldwide on a variety of commonly used operating systems and is freely distributed over the Internet.

The GrADS executables available in /usr/local/bin are the following:

  • gradsc
  • gradsdods
  • gradshdf
  • gradsnc
  • gribmap
  • gribscan
  • gxeps
  • gxps
  • gxtran
  • stnmap
  • wgrib

See the GRaDS online documentation for more information. Note that a short tutorial is available in /usr/local/apps/grads/1.8/example.

HPM

The Hardware Performance Monitor (HPM) toolkit is suite of tools for monitoring the hardware performance counters during execution of a program. The HPM toolkit consists of three parts:

  • hpmcount (in /usr/apps/bin/hpmcount)
  • libhpm.a (in /usr/apps/include/libhpm.h)
  • hpmviz (in /usr/apps/bin/hpmviz)

hpmcount is a simple-to-use standalone utility that starts an application and provides summary utilization data for the entire run.

libhpm, rather, is an interface that can be used to obtain utilization statistics for certain regions of code. The libhpm interface stores output in two files: one that is a plain text file that looks similar to the hpmcount output and the other which is designed to be visualized by the hpmviz utility.

See HPM Overview and the Hardware Performance Monitor (HPM) Toolkit for more information. Also, there are examples in /apps/HPM/prod/rs4_aix51/doc/examples.

NCAR Graphics

NCAR Graphics: the libraries are installed in /opt/public/lib (libncarg.a, libncarg_c.a, libncarg_gks.a, libncarg_ras.a, and libnco.a). More of this software can be found in /apps/ncarg+ncl/prod/rs_aix51_64/lib.

See NCAR Graphics Homepage for additional information.

NCView: NetCDF Viewer

NetCDF Viewer (NCView) is a visual browser for netCDF format files. Typically you would use ncview to get a quick and easy, push-button look at your netCDF files. You can view simple movies of the data, view along various dimensions, take a look at the actual data values, change color maps, invert the data, etc.

The ncview executable is in /usr/local/bin. You can also type man ncview for details.

For more information see the NCView home page.

OpenDX

Open Visualization Data Explorer (OpenDX) is an application and development software package for visualizing data, especially 3D data from simulations or acquired from observations. It uses a Graphical User Interface based on X windows and Motif. It comes with a complete set of standard visualization tools for looking at data. These tools include cutting planes, vector line traces, volume rendering, and isosurface/isocontour tools.

On Cheetah OpenDX can be found at /usr/local/bin/dx.

For more information see the OpenDX web page.

pdbx Parallel Debugger

pdbx is a command-line parallel debugger built on dbx. On Cheetah is is found at /usr/bin/pdbx.

See IBM Parallel Environment for AIX: Debugging and Visualizing or "man pdbx" for more information on debugging.

TotalView Parallel Debugger

TotalView is a source-level, X-windows GUI debugger for single- and multi-process programs. It works with Fortran and Fortran 90, C, and C++. It can be used for parallel programs that run under POE with hand-coded MPI calls. It also has facilities for multi-process thread-based parallel programs such as OpenMP.

The Totalview parallel debugger is located at /apps/toolworks/totalview. Version 6.3.0 of the executable is located at /apps/toolworks/totalview/bin/totalview.

The following are online Totalview resources:

xmgr

xmgr is a 2-D plotting tool for numerical data. The last public release was 4.1.2. The xmgrace tool supersedes it.

On Cheetah, xmgr can be found at /usr/local/bin/xmgr.

xmgrace

xmgrace is a WYSIWYG 2-D plotting tool for numerical data. On Cheetah it is found at /usr/local/bin/xmgrace.

For more information, see the Grace home page.

xprofiler

The xprofiler tool is an extended graphical user interface profiler. To use the xprofiler tool, the source code has to be compiled with the -pg option. Then use xprofiler after the execution of the compiled program. xprofiler is installed in /usr/bin/xprofiler.

For more information, see "man xprofiler".

Other profilers

prof and gprof --- the IBM serial and parallel execution profilers installed in the /usr/bin

See "man prof", and "man gprof" for details.


Gnu Libraries

All Gnu libraries are installed in /usr/local/gnu/, but have links in /usr/local/lib so that the actual location does not need to be known.

dejagnu

DejaGnu is a framework for testing other programs. Its purpose is to provide a single front end for all tests. Think of it as a custom library of Tcl procedures crafted to support writing a test harness. A Test Harness is the testing infrastructure that is created to support a specific program or tool. Each program can have multiple testsuites, all supported by a single test harness. DejaGnu is written in Expect, which in turn uses Tcl -- Tool command language. For more information see the Dejagnu Web Page.

diffutils

A group of utilities that displays difference between and among text files. 'diff' outputs the difference between two files producing no ouput if the files are identical. If the file are binary (non-text) it reports only that they are different. 'cmp' shows the offsets and file numbers where two files differ; it can also show, all the characters that differ between the two files. 'sdiff' merges two files interactively. 'diff3' shows differences among three files.

For more information see the Diffutiles Web Page.

GSL

GSL, the GNU Scientific Library is a numerical library for C and C++ programmers. The library provides a wide range of mathematical routines such as random number generators, special functions and least-squares fitting. There are over 1000 functions in total.

On Cheetah the GSL libs have been installed in /apps/GSL/prod/rs4_aix51_32/lib and are called libgsl.a, libgsl.la, libgslcblas.a, and libgslcblas.la.
The GSL executables are found in /apps/GSL/prod/rs4_aix51_32/bin and are called gsl-config, gsl-histogram, and gsl-randist.
Finally, the GSL include files can be found in /apps/GSL/prod/rs4_aix51_32/include/gsl, or also in /usr/local/include/gsl.

For more information see the GSL homepage.

jpeg

jpeg (pronounced "jay-peg") is a standardized image compression mechanism. JPEG stands for Joint Photographic Experts Group, the original name of the committee that wrote the standard. JPEG is designed for compressing either full-color or gray-scale images of natural, real-world scenes. It works well on photographs, naturalistic artwork, and similar material; not so well on lettering, simple cartoons, or line drawings. JPEG handles only still images.

The libjpeg.a library is available in /usr/local/lib. For more information see the Independent JPEG Group Web Page.

pact

The Portable Application Code Toolkit (PACT) is a toolkit than can be used to create portable applications. PACT is LLNL environment of choice for handling unique data, portable computing environments, and for converting data for visualization.

The PACT toolkit is only available in /apps/pact. For more information see the PACT Web Page.

png

The Portable Network Graphics (PNG) format provides a portable, well-compressed, well-specified standard for lossless bitmapped image files. Although the initial motivation for developing PNG was to replace GIF (Graphics Interchange Format), the design provides some useful new features not available in GIF, with minimal cost to developers. It has two major uses: the World Wide Web (WWW) and image-editing.

For more information see the PNG Web Page.

sprng

sprng provides both FORTRAN and C (also C++) interfaces for the use of the parallel random number generators. The current version has all the generators in one library. A complete documentation is not available yet. Please consult the old documentations and the interface at SPRNG home.

textutils

The GNU Text Utilities are the basic text-manipulation utilities of the GNU operating system.

For more information see the Textutiles Web Page.

ungif

ungif is a library for reading and writing gif images. The save functionality uses an uncompressed gif algorithm to avoid the Unisys LZW patent. This library is based heavily on Eric Raymond's libgif package and implements a superset of that_library's API.

For more information see the libungif Web Page.

zlib

zlib is a free, general-purpose, lossless data-compression library for use on virtually any computer hardware and operating system. The zlib data format is itself portable across platforms. Unlike the LZW compression method used in Unix compress(1) and in the GIF image format, the compression method currently used in zlib essentially never expands the data. (LZW can double or triple the file size in extreme cases.) zlib's memory footprint is also independent of the input data and can be reduced, if necessary, at some cost in compression.

The libz.a library is available in /usr/local/lib. For more information see the zlib Web Page.


Applications

NWChem

NWChem is a high performance computational chemistry software. It is designed to run on high-performance parallel supercomputers as well as conventional workstation clusters. Due to the slow inter-node communication that will exist until the Federation switch is installed, it is suggested that NWChem be run within a 32-way node using the MPI version, which is currently the default version. For multiple node jobs, the LAPI version is also available, but the path must be specified. The LAPI version is installed in /apps/NWChem/4.5/rs4_aix51_64_LAPI/bin/, and its data files reside in /apps/NWChem/4.5/rs4_aix51_64_LAPI/data.

Each user of NWChem will need a .nwchemrc file in their home directory that either is a copy of /apps/NWChem/prod/data/default.nwchemrc OR that points to this default.nwchemrc file. In order to point to it, users would have to issue the following command prior to using NWChem:
"ln -s /apps/NWChem/prod/data/default.nwchemrc $HOME/.nwchemrc".

For more information, consult the following resources:


IBM Environment

HSI

Hierarchical Storage Interface (hsi) is a friendly interface for the users of HPSS. For more information on hsi, type "hsi help" on one of the login nodes or click on the link below.

Other HSI resources

LoadLeveler

The LoadLeveler is a batch scheduling system available through IBM for the SP, which provides the facility for building, submitting and processing serial or parallel (MPI and LAPI) batch jobs within a network of machines.

Other LoadLeveler Resources

POE

The Parallel Operating Environment (poe) is used to to compile, run, and monitor parallel programs under the Parallel Environment (PE). The POE starts LoadLeveler, which in turn allocates nodes to your program. Depending on how your environment variables are set, specific nodes can be requested with a host.list file or LoadLeveler can choose nodes that are available. Poe is installed in /usr/bin/poe.

Other POE Resources

xloadl

xloadl is a graphical interface for monitoring usage of the Cheetah SP system.

xloadl is located at /usr/lpp/LoadL/full/bin/xloadl.



ornl | nccs | ccs | computers | disclaimer

URL http://www.ccs.ornl.gov/Cheetah/software-desc.html
Updated: Friday, 22-Apr-2005 17:13:34 EDT
consult@ccs.ornl.gov