Introduction to Scientific Computing
Total Page:16
File Type:pdf, Size:1020Kb
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) algorithms 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 Algorithm . – 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: FORTRAN 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/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.