CCS User Info | search  


Phoenix Software: Languages, Libraries, Applications, and Tools

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

Note: To find the list of current modules loaded by Cray use: module avail.
A very good source of information is CrayDoc which Cray updates with each new Programming Environment release. Here you can find information on the compilers, the open software, the scientific libraries, and more.

For software installed by CCS, look in directories of the form /apps/<software_name>/prod/<machine>. Here,machine is x1_mp2* where the x1 represents Cray's processor and mp2* represents the OS.


Languages

Cray Fortran

  • ftn, - Cray Fortran compiler installed in /opt/PE/bin/ftn
    For more information on the Fortran compiler, consider the following:

Cray C and C++

  • cc - Cray C compiler installed in /opt/PE/bin/cc
  • CC - Cray C++ compiler installed in the /opt/PE/bin/CC. For more information on the Cray C compilers, consider the following:

Perl

Perl is a high-level programming language. It is primarily derived from 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.1 interpreter is installed in /opt/open/open/bin/perl.

For more information, consult the Perl 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.

Versions 8.3 and 8.4 of Tcl and Tk are installed on the Cray in /opt/open/open/lib/.

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


Libraries

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.
NOTE: Most ACTS Toolkit routines are currently NOT installed on Phoenix. The ones that are installed have shown very poor performance. Work is underway to obtain better tuned versions. We're expecting a Cray-version of PETSc in the near future. 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.
  • Numerical Tools
  • Code Development Tools
    • Global Arrays
    • Overture
    • POOMA
  • Code Execution Tools
    • CUMULVS
    • Globus
    • PAWS
    • SILOON
    • TAU
  • Library Development Tools
    • ATLAS & PHiPAC
    • Nexus
    • PADRE
    • PETE

See The ACTS Toolkit for more information.

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 the Cray at /opt/public/lib/libaztec.a. The Aztec header files are located in /opt/public/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), it 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. The BLACS library is typically used when using the ScaLAPACK library.

Cray provides BLACS in its CrayLibSci.

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

ftn -o file file.f -lsci
or
cc -o file file.c -lsci

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.

CrayLibSci contains all the BLAS routines.

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

ftn -o file file.f -lsci
or
cc -o file file.c -lsci

For more information see the BLAS Home Page .

CrayLibSci

CrayLibSci is a library of mathematical subroutines that have been highly optimized for the Cray family of machines and so run much faster than equivalent routines from other libraries.

On the Cray, the CrayLibSci is loaded with the PE module, it is installed in /opt/ctl/craylibsci/craylibsci. You can link to libsci.a simply with -lsci . The CrayLibSci contains several sets of routines, including the 3 levels of BLAS, the BLACS, LAPACK, ScaLAPCK, many FFTs, and a few other math functions such as Bessel, Trigonometric and Erf functions.
At the Cray Documentation website, look for "Man Page Collection: Scientific Library Routines."

FFTs

The CraySciLib contains many Fast Fourier Transform routines, for the FFTs of periodic and other symmetric sequences. It includes complex, real, sine, cosine, and quarter-wave transforms. When compiling your code be sure to link with -lsci .

You can type "man -k fft" to find out about all the available fft routines on Phoenix. At the Cray Documentation website, look for "Man Page Collection: Scientific Library Routines."

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/local/lib and named libfftpack.a. Note that ESSL also contains FFT routines.

For more information see the FFTPACK home page.

FFTW

The FFTW routines, version 2.1.5 are available in /opt/public/lib and the include files are in /opt/public/include. If you wish to see the source or use the 3.0.1 version, you can go to /apps/FFTW/version/ia64_rh73/

For additional information see the FFTW home page.

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.

HDF5 is available on phoenix as a module. Use "module avail" to see the available versions and builds. The command "module load" can be used to load the needed HDF module. By default the modules will set up an environment for building MSP mode executables.

Once an HDF module has been loaded the following examples can be used to compile and link your program (hdf5example.f90) to the HDF libraries.

MSP mode:
ftn -o hdf5example.x hdf5example.f90 -lz -lsz -lhdf5_fortran -lhdf5

SSP mode:
ftn -o fileexample.x fileexample.f90 -Ossp -p$FORTRAN_MODULE_PATH/ssp -lz -lsz -lhdf5_fortran -lhdf5

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.

The LAPACK routines are built upon the BLAS routines. They are all included within Cray's CrayLibSci library. For example, you may compile your file.f file as follows:

ftn -o file file.f -lsci

For more information on LAPACK, consult the LAPACK Home Page. At the Cray Documentation website, look for "Man Page Collection: Scientific Library Routines."

Fortran and C Intrinsic Procedures Library

The Fortran and C intrinsic library (libfi) consists of libraries of tuned mathematical intrinsic functions. Be sure to compile your code with -lfi .

For more information see Cray Documentation and find the latest document entitled "Man Page Collection: Fortran and C/C++ Intrinsic Procedures".

MPTL

The Message Passing Toolkit Libraries is a subroutine library on Cray for MPI.

For more information see the Cray Documentation website, and look for "Cray Message Passing Toolkit Release Overview" and "Man Page Collection: Message Passing Interface (MPI)." Also consider MPI Standard

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 is installed. The NetCDF executable is located at /opt/public/bin. The NetCDF libraries are available in /opt/public/lib. You can access the C include files using the following compiler option:
-I/opt/public/include

See the /apps/netcdf/prod/x1* directories for all the various builds done on the X1.

More information is available at NetCDF Online Info and with the online man pages for

        
netcdf, ncdump, ncgen, ncview

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 phoenix, the PAPI library has been installed in
/apps/PAPI/prod/x1_msp,
and
/apps/PAPI/prod/x1_ssp.

For more information see the PAPI Homepage

PBLAS

Parallel Basic Linear Algebra Subroutines (PBLAS) for distributed memory MIMD computers. The PBLAS routines are also in the ScaLAPACK library. If you use ScaLAPACK from CraySciLib, then you will automatically get the PBLAS in the same library. Be sure to compile your code with -lsci .

For more information see

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.

ScaLAPACK is included within the CrayLibSci library subroutines. Be sure to link with -lsci when you compile your code.

See the ScaLAPACK Home Page for more information.

SHMEM

SHMEM is a fairly complete implementation of the SHMEM API popularized by Cray Research for their T3D/E systems.

For more information see the Cray Documentation website, and look for "Man Page Collection: Shared Memory Access (SHMEM)."

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.

SPRNG is located in /opt/public/lib/libsprng.a

Please consult the documentation and the interface at SPRNG home.


Tools

coreinfo

coreinfo is a GNU-based component of gdb (see below), which gives direct information on coredumps.
Use it with: coreinfo executable_name core_filename

gdb

gdb is a free, GNU general-purpose debugger modified for Cray systems. For more information on gdb, type man gdb .

GDB is located in /opt/gnu/bin/gdb.

CrayPAT Tools

The CrayPat performance analysis tool is the primary high-level tool for identifying opportunities for optimization on the Cray X1 system.

CrayPat provides access to a wide variety of performance experiments that measure how an executable program consumes resources while it is running, as well as several different user interfaces that provide access to the experiment and reporting functions.

Note: The CrayPat GUI interface, CrayPat PerfShell interface, and pat command line interface are deferred. The remainder of this section deals with the pat_build, pat_hwpc, and pat_report components of CrayPat, which can be executed as stand-alone programs.

For more information, see the pat(1), pat_build(1), pat_hwpc(1), and pat_report(1) man pages. Also see Cray Documentation and find the latest document entitled "Optimizing Applications on the Cray X1 System."

Totalview

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.

NOTE: From the TotalView Release Overview, Installation Guide, and User's Guide Addendum for Cray X1TM Systems manual. Section 1.5 Limitations:
TotalView currently does not use aprun to launch the executable to be debugged, and it explicitly disables the auto-aprun feature. As a consequence, an application launched from the TotalView command line will be placed on a system node, not an application node, and it will share the node's processors with operating system processes.
As a workaround you may use aprun to launch the application first, then use TotalView to attach to the process after it is running.

The specific instructions on how to fire up totalview to debug mpi tasks that are started by aprun are these:

1) submit a job using PBS, the same you have been doing all the time
2) use "psview" to identify the APID and the job executable name
after you see it's running
3) type "totalview", and a totalview window will pop up
4) go to "file" and click on "new program", another window will pop up
5) put in the name of the job name shown in psview in the first box
6) put in the APID in the process id box
7) click local in the third box
8) click OK, and the debug session will start

In order to run a PARALLEL (interactive) job with totalview on the
Cray, you do this:

env CRAY_AUTO_APRUN_OPTIONS="-n3" totalview <program> [totalview
options] [-a <program options>]

Where obviously the number following the -n is the number of processors
you want.

The Totalview parallel debugger is located at /opt/totalview/totalview/bin/totalview.

At the Cray Documentation website, see:

  • Cray's TotalView 6.1 (May 2003)
  • Cray's TotalView 6.1 - User's Guide Addendum (May 2003)
Also consider Etnus TotalView docs

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

PBS

PBS is the "Portable Batch System" job scheduler used on the Cray system.

For additional PBS information, please use



ornl | nccs | ccs | computers | disclaimer

URL http://www.ccs.ornl.gov/Phoenix/software-desc.html
Updated: Monday, 21-Mar-2005 16:53:52 EST
consult@ccs.ornl.gov