1. Tools: Libraries and Software

• In addition to standart tools like editors, compilers, or debug- gers, there is a lot of (commercial or public domain) support available:

– Modelling: Computer algebra programs like Mathematica, Tools: Libraries and . . .

Maple, Axiom, or Reduce support derivations and proofs of Libraries and Collections

theorems via symbolic means. Libraries and Collections

– Numerics: Mathematica, Maple, or MATLAB support the Libraries and Collections

development, testing, and analysis of (numerical) BLAS

and allow an efficient prototyping. LAPACK

– Implementation: A zoo of (numerical) libraries provide up- Libraries and Collections

to-date modules for standard tasks (numerical linear alge- Libraries and Collections

bra etc.), tailored to specific target architectures. Tools for . . . – Visualization: Packages like IDL, IRIS Explorer, or AVS/Express Maple offer (nearly) all you want. MATLAB

Page 1 of 11

Introduction to Scientific Computing 3. Tools/Libs Hans-Joachim Bungartz 2. Libraries and Collections

• GAMS: Guide to Available Mathematical Software – service offered bu the National Institute of Standards & Tech- nology – see http://gams.nist.gov/ Tools: Libraries and . . . – catalogue and database of more than 100 packages and Libraries and Collections libraries with together several tens of thousands of routines Libraries and Collections – Topics range from number theory to statistics! Libraries and Collections BLAS – majority: programs for numerical tasks (sys- LAPACK tems of linear equations, eigenvalues, roots, differential equa- Libraries and Collections tions, . . . ) Libraries and Collections

– includes both public domain material (at NIST or at NETLIB, Tools for Algorithm . . . see below) and commercial (licenced) products. Maple

– good user guidance MATLAB

Page 2 of 11

Introduction to Scientific Computing 3. Tools/Libs Hans-Joachim Bungartz 3. Libraries and Collections

• Matrix market – see http://math.nist.gov/MatrixMarket/ – repository of test data for use in comparative studies of al- gorithms for numerical linear algebra Tools: Libraries and . . . – features nearly 500 (sparse) matrices from various fields of Libraries and Collections applications (chemical engineering, fluid flow, power sys- Libraries and Collections tem networks, quantum physics, or structural engineering, Libraries and Collections e.g.) BLAS – provides also matrix generation tools LAPACK Libraries and Collections – classification according to matrix properties: Libraries and Collections number filed: real or complex * Tools for Algorithm . . . nonzero structure: dense, banded sparse, tridiagonal, * Maple ... MATLAB * symmetry: none, symmetric, skewsymmetric, SPD, SSPD,. . . * shape: square, more rows than columns,. . .

Page 3 of 11

Introduction to Scientific Computing 3. Tools/Libs Hans-Joachim Bungartz 4. Libraries and Collections

• NETLIB: repository of free software for numerical purposes – see http://www.netlib.org/ – offered by University of Tennessee and Oak Ridge Nat’l Lab – several mirrored copies all over the world Tools: Libraries and . . . Libraries and Collections – about 135 million requests since 1985, > 40 million in 2000 Libraries and Collections

– > 90% http, rest ftp and email Libraries and Collections

– about 160 different libraries, among which BLAS

LAPACK * BLAS (Basic Linear Algebra Subprograms) Libraries and Collections * LAPACK (Linear Algebra PACKage) Libraries and Collections * ODEPACK (ordinary differential equations) Tools for Algorithm . . . * MPI (message passing interface, for parallelization) PLTMG (elliptic boundary value problems) Maple * MATLAB

Page 4 of 11

Introduction to Scientific Computing 3. Tools/Libs Hans-Joachim Bungartz 5. BLAS

• collection of robust, efficient, and portable modules for elemen- tary vector and matrix operations • basis for LAPACK routines, for example • allows plug-and-play for numerical subroutines Tools: Libraries and . . . Libraries and Collections

• FORTRAN, to be used from FORTRAN//C++ Libraries and Collections • Java BLAS available, too Libraries and Collections BLAS

• levels: LAPACK Level 1: vector and vector-vector operations (norm, scalar product, Libraries and Collections vector addition, SAXPY, . . . ) Libraries and Collections Level 2: matrix-vector operations (rank-1-modifications, matrix-vector Tools for Algorithm . . . product, tridiagonal systems); vector processors Maple MATLAB Level 3: matrix-matrix operations; parallel computers!

Page 5 of 11

Introduction to Scientific Computing 3. Tools/Libs Hans-Joachim Bungartz 6. LAPACK

• popular collection of FORTRAN subroutines for standard prob- lems from numerical linear algebra like linear systems, regres- sion, eigenvalues, SVD, . . .

• dense and band matrices (not general sparse ones) Tools: Libraries and . . . • successor of EISPACK and LINPACK, tuning for modern mi- Libraries and Collections croprocessors and supercomputer architectures (reduction of Libraries and Collections memory accesses, block operations, . . . ) Libraries and Collections BLAS • LAPACK routines use BLAS modules LAPACK • variants: Libraries and Collections Libraries and Collections – LAPACK90, CLAPACK, LAPACK++ Tools for Algorithm . . .

– ScaLAPACK (MIMD systems, scalability!) Maple

MATLAB

Page 6 of 11

Introduction to Scientific Computing 3. Tools/Libs Hans-Joachim Bungartz 7. Libraries and Collections

• Visual Numerics: – see http://www.vni.com – mathematical libraries – predecessor: IMSL (The Int’l Math. & Statist. Library) Tools: Libraries and . . . Libraries and Collections

• Diffpack: Libraries and Collections – offered by Numerical Objects, see http://www.nobjects.com Libraries and Collections BLAS – environment for the development of code for numerical sim- ulation problems plus libraries of efficient routines LAPACK Libraries and Collections – object-oriented concept, available for most UNIX platforms Libraries and Collections • NAG (Numerical Algorithms Group): Tools for Algorithm . . . Maple – see http://www.nag.co.uk/ MATLAB – non-profit software house, spin-off of Oxford University – FORTRAN/FORTRAN90/C/Parallel libraries; – AXIOM; IRIS Explorer (Visual.); Fastflo (CFD and more) Page 7 of 11

Introduction to Scientific Computing 3. Tools/Libs Hans-Joachim Bungartz 8. Libraries and Collections

• Numerical Recipes: – see http://www.nr.com – book series The Art of Scientific Computing (CU Press) – sophisticated algorithms and their implementations Tools: Libraries and . . . Libraries and Collections – available for FORTRAN 77, FORTRAN 90, C, Pascal, . . . Libraries and Collections

– corresponding software is licenced and commercial Libraries and Collections

– about 350 routines for topics like BLAS

LAPACK * solution of linear systems Libraries and Collections * interpolation and extrapolation Libraries and Collections * numerical quadrature Tools for Algorithm . . . * differentiation and approximation roots and extrema Maple * MATLAB * eigenvalues, differential equations, and more

Page 8 of 11

Introduction to Scientific Computing 3. Tools/Libs Hans-Joachim Bungartz 9. Tools for Algorithm Development

• Libraries offer tested and efficient (w.r.t. both storage and run- time) standard modules for competitive simulation codes (do something classical cheap!)

• Another problem is algorithm development (develop something Tools: Libraries and . . .

new and cheaper!): Libraries and Collections – design of algorithms Libraries and Collections – testing and rapid prototyping Libraries and Collections BLAS – analysis (convergence behaviour etc.) LAPACK

– not yet: production runs, memory or runtime optimization Libraries and Collections • widespread solutions: Libraries and Collections Tools for Algorithm . . .

– computer algebra programs like Maple or Mathematica Maple

– MATLAB MATLAB

Page 9 of 11

Introduction to Scientific Computing 3. Tools/Libs Hans-Joachim Bungartz 10. Maple

• by Waterloo Maple Inc., a spin-off of the University of Waterloo in Ontario (see http://www.maplesoft.com) • originally a mere computer algebra program, today “interactive

environment for mathematical problem solving and program- Tools: Libraries and . . .

ming” Libraries and Collections • focus: Libraries and Collections Libraries and Collections – symbolic computations, formula manipulation BLAS

– numerical computations with arbitrary accuracy LAPACK – 2D and 3D graphical output Libraries and Collections – straightforward programming for algorithm development Libraries and Collections Tools for Algorithm . . .

• structure: Maple kernel + main library + mixed library + packages MATLAB

Page 10 of 11

Introduction to Scientific Computing 3. Tools/Libs Hans-Joachim Bungartz 11. MATLAB

• by The MathWorks (see http://www.mathworks.com/) • originally: primarily for use in (maths) education • today: “high-performance numerical computation and visualiza- tion software”, standard tool for scientific computing research Tools: Libraries and . . . groups: Libraries and Collections Libraries and Collections

– development, prototyping, programming Libraries and Collections

– computations BLAS – visualization LAPACK Libraries and Collections • singular success story: >500 employees, >100 countries, >2000 Libraries and Collections universities and research institutes Tools for Algorithm . . . • structure: basic program plus a collection of specialized tool Maple boxes MATLAB

Page 11 of 11

Introduction to Scientific Computing 3. Tools/Libs Hans-Joachim Bungartz