Computer Packages and Libraries An introduction to features of packages (Matlab, Maple, AVS), and library routines, (NAG, IMSL, (Sca)LAPACK, (P) ESSL, Numerical Recipes). (You might prefer to read this with no frames by typing
High Performance Computing
High Performance Computing (HPC) is an engineering discipline which develops the technology (hardware, algorithms, and software) to deliver cost-effective computational results.
Packages and Libraries
These tools enable:
Further Information (see also under each of the products)
Computing Services (look under documentation to find out how to use packages at the University)
http://www.soton.ac.uk/~sucsweb/Netlib Repository
ftp://www.hensa.ac.uk/mirrors/netlib/
Matlab
Describes itself as "The Ultimate Computing Environment for
Technical Education." Matlab is a versatile programmable calculator, with large number of built in functions.Features
N.B.
Availability
Can buy student edition of Matlab Version 5 for £36
Information Sheet:
http://www.soton.ac.uk/~sucsweb/docs/pp/numerical/025pp.htmlOn university Unix and Windows/ DOS service.
Matlab:
http://www.mathworks.comMatlab ftp and a faster mirror (Contains useful Mathworks files + patches)
ftp://ftp.mathworks.com/ ftp://unix.hensa.ac.uk/mirrors/matlabFuture
There are various compilers for Matlab. Mathworks offer one that will compile your Matlab code into C, and generally makes it run about 5-10 times faster.
There are a number of research projects to convert Matlab into Fortran, C, or Fortran 90, and C with MPI (which would allow very large-scale computations to be performed on high performance parallel supercomputers).
Summary Sheet
These sections refer to the Faculty of Engineering and Applied Science Graduate School course "Data Handling for Research Students" booklet (2nd Edition), available from
sjc95r@ecs.soton.ac.uk .Key features
Basic Mathematics |
6.2 |
Help |
6.4 |
Array operations |
6.5 |
2D plotting and producing output |
6.7 |
3D plotting |
6.18 |
MATLAB Programming |
6.12 and 6.13 |
Advanced features
Handling Arrays |
6.6 |
Relational Operators |
6.8 |
Linear Algebra |
6.9.1 |
Text Handling |
6.11 |
Curve fitting and interpolation |
6.15.1 - 6.15.6 |
Sparse Matrices |
6.17.9 |
Optimisation tips |
6.17 |
Extras
Complex Numbers |
6.3 |
Linear Algebra what can go wrong |
6.9.2 - 6.9.5 |
Special Matrices |
6.10 |
Polynomials |
6.14 |
Numerical Analysis |
6.15.7- 6.15.10 |
Data Analysis |
6.16 |
Maple
A mathematical manipulation package.
Features
N.B.
Availability
Product Sheet 24 available from SUCS:
http://www.soton.ac.uk/~sucsweb/docs/pp/numerical/024pp.htmlIt is on university Unix and Windows/ DOS service.
Maple homepage
http://www.maplesoft.com/Symbolic Computation Group, where Maple started as a research project
http://daisy.uwaterloo.ca/
Excel
This is a spreadsheet package from Microsoft, and is part of the Microsoft Office suite. It might sound surprising to suggest using this in the context of high performance computing, but we require our solutions to be cost-effective.
Features
N.B.
Availability
Through various licensing agreements, students can obtain a cheap version of Office for around £100. Office Standard has Word, Excel, and Powerpoint (and some other things). Office Professional includes the Office Standard and Access (a database program).
AVS
AVS (Application Visualisation System) from Advanced Visual Systems/UNIRAS Ltd is a powerful computer graphics package for data visualisation.
AVS is an application builder that allows users to visualise their data by constructing applications from a series of software components called modules. Each
module performs a specific task e.g. importing data, processing/filtering data and rendering. Applications are constructed with a GUI (Graphical User Interface)
and the user only has to direct the path of the program and data. The number of modules is such (230+ supplied and 500 public domain) that many visualisation
applications can be constructed without programming. However, a key feature of the system is that it is extensible by the user as additional modules can be written,
in C or FORTRAN, and integrated into the system.
N.B.
Availability
This page has links to tutorials on AVS
http://www.soton.ac.uk/~sucsweb/docs/pp/graphics/083pp.html
NAG Libraries
The NAG Fortran library is a set of mathematical, graphical and statistical routines made available by the Numerical Algorithms Group Limited at Oxford. The Mark 17
version of the library contains over eleven hundred user-callable routines which are divided into 41 chapters.
Availability
Fortran Library information (supported by SUCS Unix service)
http://www.soton.ac.uk/~sucsweb/docs/pp/program/112pp.htmlC information:
http://www.soton.ac.uk/~sucsweb/docs/pp/numerical/132pp.htmlNAG Documentation:
http://www.soton.ac.uk/~sucsweb/docs/pp/program/021pp.htmlNAG libraries:
http://www.soton.ac.uk/~sucsweb/unix/apps/naghelp/summaries/
IMSL Libraries
The IMSL Libraries provide numerical, statistical and graphics routines for use by Fortran and C programmers.
Availability
Information Sheet:
http://www.soton.ac.uk/~sucsweb/docs/pp/program/176pp.htmlDigital Visual Fortran Professional 5.0.A
This includes the full IMSL libraries, so these are available on the HPCC Dec Alpha Cluster (codename Arthur).
Linear Algebra Routines
ScaLAPACK
This is a library of high-performance linear algebra routines for distributed memory message-passing MIMD computers and networks of workstations supporting parallel virtual machine (PVM) and/ or MPI (Message-passing interface). It is built on (P)BLAS and LAPACK.
(P)BLAS
(Parallel) Basic Linear Algebra Subprograms" are suite of routines for basic linear algebra. They will solve systems of linear equations, linear least squares problems, eigenvalue and eigenvector problems, singular value problems.
Availability
The code for each routine is freely available.
ScaLAPACK home page (
and mirrors for Netlib files) http://www.netlib.org/scalapack/index.html http://www.hensa.ac.uk/ftp/mirrors/netlib/masterBLAS routines:
ftp://www.hensa.ac.uk/mirrors/netlib/blas(index.html did not correctly download files for me, but downloading directly from the directory was fine)
Vendors will often supply an implementation of these tuned for their machine…
(P) ESSL
ESSL is an Engineering and Scientific Subroutine Library, provided by IBM providing linear algebra, matrix operations, eigensystem analysis, fast Fourier transforms, sorting and searching, interpolation and random number generation routines.
PESSL is a parallel implementation of a subset of the routines from IBM's ESSL library. It is based on the public domain ScaLAPACK library.
Availability
It is supplied by IBM on the SP2:
http://www.soton.ac.uk/~_sp2adm/software/pessl.htmSee also the SP2 web pages
http://www.soton.ac.uk/~_sp2adm/software/index.html
Numerical Recipes
This book is one of the most important references for numerical methods, and it contains full implementations of most of the important techniques you will require. When using a package, or a library, it is important to understand the algorithm you are using, and whether it is appropriate. Numerical Recipes is not just a source of code, but it is a source of good numerical practise.
Features
Availability
Buy the book! (Cost ~£36 pounds for F77 or C, and £20 for the accompanying volume for F90)
A CD-ROM is also available, which has the code and examples along with a host of additional routines.
You can download chapters from the web for the Fortran 77 and C books from:
http://cfatab.harvard.edu/nr/nronline.html
Summary
Use a package, library, or write your own code to provide "cost-effective computational results". This requires understanding hardware, algorithms, and software, and making informed choices about how to arrive at the best solution.
Next session we will return to the algorithms which underlie these packages and libraries.
Last updated 8-Dec-97. Maintained by SJ Cox