UW AMath High Performance Scientific Computing
 
AMath 483/583 Class Notes
 
Spring Quarter, 2013

Table Of Contents

Previous topic

Jacobi iteration using MPI

Next topic

Software Carpentry

This Page

Bibliography and further reading

Many other pages in these notes have links not listed below. These are some references that are partiuclarly useful or are cited often elsewhere.

Books

[Lin-Snyder]C. Lin and L. Snyder, Principles of Parallel Programming, 2008.
[Scott-Clark-Bagheri]L. R. Scott, T. Clark, B. Bagheri, Scientific Parallel Computing, Princeton University Press, 2005.
[McCormack-scientific-fortran]D. McCormack, Scientific Software Development in Fortran, Lulu Press, ... ebook ... paperback
[Rauber-Ruenger](1, 2) T. Rauber and G. Ruenger, Parallel Programming For Multicore and Cluster Systems, Springer, 2010 ... book ... ebook
[Chandra-etal-openmp]R. Chandra, L. Dagum, et. al., Parallel Programming in OpenMP, Academic Press, 2001.
[Gropp-Lusk-Skjellum-MPI]W. Gropp, E. Lusk, A. Skjellum, Using MPI, Second Edition, MIT Press, 1999. Google books
[Snir-Dongarra-etal-MPI]M. Snir, J. Dongarra, J. S. Kowalik, S. Huss-Lederman, S. W. Otto, D. W. Walker, MPI: The Complete Reference (2-volume set) , MIT Press, 2000.
[Dive-into-Python]M. Pilgram, Dive Into Python, http://www.diveintopython.org/.
[Python]G. van Rossum, An Introduction to Python, http://www.network-theory.co.uk/docs/pytut/index.html
[Langtangen-scripting]H. P. Langangen, Python Scripting for Computational Science, 3rd edition, Springer, 2008. book and scripts ... lots of slides
[Langtangen-Primer]H. P. Langtangen, A Primer on Scientific Programming with Python, Springer 2009 What’s the difference from the previous one?
[Goedecker-Hoisie-optimization]S. Goedecker and A. Hoisie, Performance Optimization of Numerically intensive Codes, SIAM 2001.
[Matloff-Salzman-debugging]N. Matloff and P. J. Salzman, The Art of Debugging with GDB, DDD, and Eclipse, no starch press, San Francisco, 2008.
[Overton-IEEE]M. Overton, Numerical Computing with IEEE Floating Point Arithmetic, SIAM, 2001.
[Eijkhout]V. Eijkhout, Introduction to High-Performance Scientific Computing, [link to book and slides]

Other courses with useful slides or webpages

[software-carpentry]Greg Wilson, http://software-carpentry.org/ See Software Carpentry for links to some useful sections.
[Reynolds-class]Dan Reynolds, SMU http://dreynolds.math.smu.edu/Courses/Math6370_Spring11/.
[Snyder-UW-CSE524]Larry Snyder, UW CSE 524, Parallel Algorithms
[Gropp-UIUC]William Gropp UIUC Topics in HPC
[Yelick-UCB]Kathy Yelick, Berkeley course on parallel computing
[Demmel-UCB]Jim Demmel, Berkeley course on parallel computing
[Kloekner-Berger-NYU]Andreas Kloeckner and Marsha Berger, NYU course
[Berger-Bindel-NYU]Marsha Berger and David Bindel, NYU course
[LLNL-HPC]Livermore HPC tutorials
[NERSC-tutorials]NERSC tutorials
[HPC-University]http://www.hpcuniv.org/

Software

See also

Downloading and installing software for this class for links to software download pages.

[CosmicProject]links to open source Python software

Virtual machine references

[VirtualBox]http://www.virtualbox.org/
[VirtualBox-documentation]http://www.virtualbox.org/wiki/Documentation

Python:

[Python-2.5-tutorial]http://www.python.org/doc/2.5.2/tut/tut.html
[Python-2.7-tutorial]http://docs.python.org/tutorial/
[Python-documentation]http://docs.python.org/2/contents.html
[Python-3.0-tutorial]http://docs.python.org/3.0/tutorial/ (we are not using Python 3.0 in this class!)
[IPython-documentation]http://ipython.org/documentation.html (With lots of links to other documentation and tutorials)
[IPython-notebook]http://ipython.org/ipython-doc/dev/interactive/htmlnotebook.html
[Python-pdb]Python debugger documentation
[IPython-book]Cyrille Rossant, Learning IPython for Interactive Computing and Data Visualization, Packt Publishing, 2013. http://ipython.rossant.net/.

Version control systems references

[wikipedia-revision-control]http://en.wikipedia.org/wiki/Revision_control
[wikipedia-revision-control-software]http://en.wikipedia.org/wiki/List_of_revision_control_software

Reproducibility references

[sci-code-manifesto]Science Code Manifesto
[icerm-workshop]Links from a recent workshop on the topic
[winter-school]A recent Winter School on the topic in Geilo, Norway:

Fortran references

Many tutorials and references are available online. Search for “fortran 90 tutorial” or “fortran 95 tutorial” to find many others.

[Reynolds-fortran]Dan Reynolds fortran page http://dreynolds.math.smu.edu/Courses/Math6370_Spring11/fortran.html
[Shene-fortran]C.-K. Shene’s Fortran 90 tutorial http://www.cs.mtu.edu/~shene/COURSES/cs201/NOTES/fortran.html
[Dodson-fortran]Zane Dodson’s Fortran 90 tutorial http://www.cisl.ucar.edu/tcg/consweb/Fortran90/F90Tutorial/tutorial.html
[fortran-tutorials]Links to a few other tutorials http://gcc.gnu.org/wiki/Fortran%2095%20tutorials%20available%20online
[advanced-fortran]Kaiser, Advanced Fortran 90 http://www.sdsc.edu/~tkaiser/f90.html

Computer architecture references

[wikipedia-computer-architecture]http://en.wikipedia.org/wiki/Computer_architecture
[wikipedia-memory-hierachy]http://en.wikipedia.org/wiki/Memory_hierarchy
[wikipedia-moores-law]http://en.wikipedia.org/wiki/Moore%27s_law.

Floating point arithmetic

[Arnold-disasters]Doug Arnold’s descriptions of some disasters due to bad numerical computing, http://www.ima.umn.edu/~arnold/disasters/

Languages and compilers

[wikipedia-machine-code]http://en.wikipedia.org/wiki/Machine_code
[wikipedia-assembly]http://en.wikipedia.org/wiki/Assembly_language
[wikipedia-compilers]http://en.wikipedia.org/wiki/Compilers

OpenMP references

[Chandra-etal-openmp]R. Chandra, L. Dagum, et. al., Parallel Programming in OpenMP, Academic Press, 2001.
[Chapman-Jost]B. Chapman, G. Jost, R. van der Pas, Using OpenMP: Portable Shared Memory Parallel Programming, MIT Press, 2007
[openmp-RR]Section 6.3 and beyond of [Rauber-Ruenger]
[openmp.org]http://openmp.org/wp/resources contains pointers to many books and tutorials.
[openmp-specs]http://openmp.org/wp/openmp-specifications/ has the latest official specifications
[openmp-llnl]https://computing.llnl.gov/tutorials/openMP/ Livermore tutorials
[openmp-gfortran]http://gcc.gnu.org/onlinedocs/gfortran/OpenMP.html
[openmp-gfortran2]http://sites.google.com/site/gfortransite/
[openmp-refcard]OpenMP in Fortran Reference card

MPI references

[openmp-RR]Chapter 5 of [Rauber-Ruenger]

See also [Gropp-Lusk-Skjellum-MPI] and [Snir-Dongarra-etal-MPI]

See MPI for more references.