
CS 5944 Scientific Computing for Engineers: Spring 2011 – 3 Credits This class is part of the Interdisciplinary Graduate Minor in Computational Science. See IGMCS for details.Wednesdays from 1:30 – 4:15, Room 233 Claxton Prof. Jack Dongarra with help from Profs. George Bosilca, Jakub Kurzak, Shirley Moore, Stan Tomov, and Vince Weaver Email: dongarra@eecs.utk.edu Phone: 8659748295 Office hours: Wednesday 11:00  1:00, or by appointment TA: Wes Alvaro, alvaro@eecs.utk.edu TA’s Office : 351 Claxton
TA’s Office Hours: Wednesday’s 10:00 – 12:00 or by appointment
There will be four major aspects of the course: · Part I will start with current trends in highend computing systems and environments, and continue with a practical short description on parallel programming with MPI, OpenMP, and Pthreads.
· Part II will illustrate the modeling of problems from physics and engineering in terms of partial differential equations (PDEs), and their numerical discretization using finite difference, finite element, and spectral approximation.
· Part III will be on solvers: both iterative for the solution of sparse problems of part II, and direct for dense matrix problems. Algorithmic and practical implementation aspects will be covered.
· Finally in Part IV, various software tools will be surveyed and used. This will include PETSc, Sca/LAPACK, MATLAB, and some tools and techniques for scientific debugging and performance analysis.
The grade would be based on homework, a midterm project, a final project, and a final project presentation. Topics for the final project would be flexible according to the student's major area of research.
Class Roster If your name is not on the list or some information is incorrect, please send mail to the TA:
And the course mailing list: cs594parallelstudents@cs.utk.edu
Book for the Class: The Sourcebook of Parallel Computing, Edited by Jack Dongarra, Ian Foster, Geoffrey Fox, William Gropp, Ken Kennedy, Linda Torczon, Andy White, October 2002, 760 pages, ISBN 1558608710, Morgan Kaufmann Publishers.
Lecture Notes: (Tentative outline of the class)
Introduction to High Performance Computing Read Chapter 1, 2, and 9 Homework 1 (due January 26, 2011)
Homework 2 (due February 2, 2011) Read Chapter 3 Read Chapter 20
Read Chapter 21
Parallel programming paradigms and their performances
Homework 3 (due February 23, 2011) Parallel programming paradigms and their performances 2 Read Chapter 11
Message Passing Interface (MPI) MPI Dynamic Processes Homework 4 (due March 2^{nd}, 2011)
MPI MPI I/O Homework 5 (due March 9^{th}, 2011) Read Chapter 9 HPC Performance Issues and Systems Read Chapter 3
Performance Evaluation and Tuning Homework 6 (due March 23^{rd}, 2011)
OpenMP and Homework 7 (due March 30^{th}, 2011)
March 16 – Spring Break
Partitioned Global Address Space (PGAS) languages Homework 8 (due April 6^{th}, 2011)
11. March 30 (Dr. Tomov) Projection and its importance in scientific computing
Discretization of PDEs and Tools for the Parallel Solution of the Resulting Syst Mesh generation and load balancing
Sparse Matrices and Optimized Parallel Implementations NVIDIA's Compute Unified Device Architecture (CUDA) Read Chapter 20 and 21
14. April 20 (Dr. Dongarra) Some disasters attributable to bad numerical computing Read Chapter 20 Bailey’s paper on “12 ways to fool …”
Iterative Methods in Linear Algebra (Part 1) Iterative Methods in Linear Algebra (Part 2)
Class Final reports Order of presentation: 10:00 Tingxing Dong 10:20 Shuang Gao 10:40 Chuanjun He 11:00 Huang Huang 11:20 Yulu Jia 11:40 Lunch 12:00 Lunch 12:20 Bryan Hunter 12:40 Nicholas Lineback 1:00 Rui Ma 1:20 Mouge Mohagheghi 1:40 Henian Xia
Here are some ideas for projects: o Projects and additional projects.
Additional Reading Materials Message Passing SystemsSeveral implementations of the MPI standard are available today. The most widely used open source MPI implementations are Open MPI and MPICH.Here is the link to the MPI Forum.Other useful reference material· Here are pointers to specs on various processors: http://www.cpuworld.com/CPUs/index.html http://www.cpuworld.com/sspec/index.html http://processorfinder.intel.com
· Introduction to message passing systems and parallel computing
``Message Passing Interfaces'', Special issue of Parallel Computing, vol 20(4), April 1994.
Ian Foster, Designing and Building Parallel Programs, see http://wwwunix.mcs.anl.gov/dbpp/
Alice Koniges, ed., Industrial Strength Parallel Computing, ISBN1558605401, Morgan Kaufmann Publishers, San Francisco, 2000.
Ananth Gramma et al., Introduction to Parallel Computing, 2^{nd} edition, Pearson Education Limited, 2003.
Michael Quinn, Parallel Programming: Theory and Practice, McGrawHill, 1993
David E. Culler & Jaswinder Pal Singh, Parallel Computer Architecture, Morgan Kaufmann, 1998, see http://www.cs.berkeley.edu/%7Eculler/book.alpha/index.html
George Almasi and Allan Gottlieb, Highly Parallel Computing, Addison Wesley, 1993
Matthew Sottile, Timothy Mattson, and Craig Rasmussen, Introduction to Concurrency in Programming Languages, Chapman & Hall, 2010
· Other relevant books
Stephen Chapman, Fortran 95/2003 for Scientists and Engineers, McGrawHill, 2007
Stephen Chapman, MATLAB Programming for Engineers, Thompson, 2007
Barbara Chapman, Gabriele Jost, Ruud van der Pas, and David J. Kuck, Using OpenMP: Portable Shared Memory Paralllel Programming, MIT Press, 2007
Tarek ElGhazawi, William Carlson, Thomas Sterling, Katherine Yelick, UPC: Distributed Shared Memory Programming, John Wiley & Sons, 2005
David Bailey, Robert Lucas, Samuel Williams, eds., Performance Tuning of Scientific Applications, Chapman & Hall, 2010
Message Passing Standards``MPI  The Complete Reference, Volume 1, The
MPI1 Core, Second Edition'',
``MPI: The Complete
Reference  2nd Edition: Volume 2  The MPI2 Extensions'',
MPI2.1 Standard, September 2008 PDF format: http://www.mpiforum.org/docs/mpi21report.pdf Hardcover: https://fs.hlrs.de/projects/par/mpi//mpi21/
MPI2.2 Standard, September 2009 PDF format: http://www.mpiforum.org/docs/mpi2.2/mpi22report.pdf Hardcover: https://fs.hlrs.de/projects/par/mpi//mpi22/
Online Documentation and Information about Machines · Overview of Recent Supercomputers, Aad J. van der Steen and Jack J. Dongarra, 2007.· Green 500 List of Energy –Efficient Supercomputers
Other Scientific Computing Information Sites · Netlib Repository at UTK/ORNL · LAPACK · GAMS  Guide to Available Math Software · Fortran Standards Working Group · Message Passing Interface (MPI) Forum · OpenMP · DOD High Performance Computing Modernization Program · DOE Accelerated Strategic Computing Initiative (ASC) · AIST Parallel and High Performance Application Software Exchange (in Japan) (includes information on parallel computing conferences and journals) · HPCwire
Related Online Books/Textbooks · Templates for the Solution of Linear Systems: Building Blocks for Iterative Methods, SIAM Publication, Philadelphia, 1994. · LAPACK Users' Guide (Second Edition), SIAM Publications, Philadelphia, 1995. · Using MPI: Portable Parallel Programming with the MessagePassing Interface by W. Gropp, E. Lusk, and A. Skjellum · Parallel Computing Works, by G. Fox, R. Williams, and P. Messina (Morgan Kaufmann Publishers) · Designing and Building Parallel Programs. A deadtree version of this book is available by AddisonWesley. · Introduction to HighPerformance Scientific Computing, by Victor Eijkhout with Edmond Chow, Robert Van De Geijn, February 2010 · Introduction to Parallel Computing, by Blaise Barney
Performance Analysis Tools Websites · PAPI · TAU · Vampir · Scalasca · mpiP · ompP · IPM · Eclipse Parallel Tools Platform Other Online Software and Documentation· Matlab documentation is available from several sources, most notably by typing ``help'' into the Matlab command window. A primer (for version 4.0/4.1 of Matlab, not too different from the current version) is available in either postscript or pdf. · SuperLU is a fast implementations of sparse Gaussian elimination for sequential and parallel computers, respectively. · Sources of test matrices for sparse matrix algorithms · University of Florida Sparse Matrix Collection · Templates for the solution of linear systems, a collection of iterative methods, with advice on which ones to use. The web site includes online versions of the book (in html and postscript) as well as software. · Templates for the Solution of Algebraic Eigenvalue Problems is a survey of algorithms and software for solving eigenvalue problems. The web site points to an html version of the book, as well as software. · Updated survey of sparse direct linear equation solvers, by Xiaoye Li · MGNet is a repository for information and software for Multigrid and Domain Decomposition methods, which are widely used methods for solving linear systems arising from PDEs. · Resources for Parallel and High Performance Computing · ACTS (Advanced CompuTational Software) is a set of software tools that make it easier for programmers to write high performance scientific applications for parallel computers. · PETSc: Portable, Extensible, Toolkit for Scientific Computation · Issues related to Computer Arithmetic and Error Analysis · Efficient software for very high precision floating point arithmetic · Notes on IEEE Floating Point Arithmetic, by Prof. W. Kahan · Other notes on arithmetic, error analysis, etc. by Prof. W. Kahan · Report on arithmetic error that cause the Ariane 5 Rocket Crash Video of the explosion · The IEEE floating point standard is currently being updated. To find out what issues the standard committee is considering, look here. Jack Dongarra4/27/2011



