High Performance Scientific Computing Seminar - Spring 2009
Organizers: Randy LeVeque, Ulrich Hetmaniuk, Kyle Mandli
Meeting time: T-Th 1:30 - 2:20 in Winkenwerder Forest Lab WFS 201 map
Students who plan to attend regularly can register for 1 credit of AMath 500A (instructor LeVeque, instructor code 53830, SLN 10209)
Drop ins welcome for any or all seminars.
- Please take this end-of-quarter survey to give us feedback and suggestions.
The goal of this seminar is to start developing a regular 400/500 level course on this topic to be taught each spring quarter (meeting three times a week eventually). We will use this opportunity to develop course materials, to test out some ideas, and to gather feedback from the computational science community at UW on what should be in this course. The format this year will consist of some lectures by the organizers and many guest lectures by others on campus or from outside the university. There will be no formal homework or exams but participants will be encouraged to try things out and we will provide support.
The intention of this course is to provide an overview of many aspects of scientific computing that go beyond the simple Matlab programming covered in our introductory scientific computing courses (AMath 301 and 581) or in our numerical methods courses (AMath 584-5-6). It is intended to be appropriate for advanced undergraduates, particularly those in the Scientific Computing Option of the ACMS major, and for graduate students in Applied Mathematics and many other fields who need to do more advanced computing. The background required will be some knowledge of programming as introduced in the courses above or CSE 142.
- Participants Please add a link for yourself if you wish.
- Links to various resources on these topics
- References Some books
- Suggestions? Add to this wiki page or email one of the organizers.
- Slides from lectures
- Subversion Hints if you want to download code from the svn repository. You can browse the repository by clicking on "Browse Source" at the top of this page.
Tentative List of Topics
- Programming:
- Compiled vs. interpreted language, procedural vs. object oriented
- Data types, static vs. dynamic memory allocation
- Cache hierarchies and implications for algorithm implementation
- Fortran 90/95/2003
- Existing software libraries for scientific computing
- Makefiles, Subversion, Trac and other development tools
- Python scripting, SAGE for symbolic computation
- Python/Fortran/Matlab/C interfacing
- Parallel computing:
- Multicore/multiprocessor architectures
- Introduction to MPI and OpenMP
- Parallel numerical algorithms
- GPU programming
- Large data sets:
- I/O in binary data formats, e.g. HDF, NetCDF
- Visualization tools for large data sets, 3D in particular
- Miscellaneous topics
- Validation and Verification (V&V) of scientific computing results
- Software design, literate programming
- Debugging
- Reproducible research techniques
Tentative Schedule
The first four weeks are aimed primarily at students unfamiliar with high-performance issues and may be of limited interest to those with prior experience. The remaining weeks will include more specialized topics and several guest lectures.
- Week 1 (3/31 and 4/2)
- Introduction to high performance scientific computing and overview
- Overview of programming language issues with examples
- Week 2 (4/7 and 4/9)
- More discussion of programming languages: Python
- More discussion of programming languages: Fortran 95
- Week 3 (4/14 and 4/16)
- Introduction to machine architecture for single processors, e.g. memory hierarchies, latency, pipelining
- Parallel machine architectures, distributed/shared memory, etc.
- Week 4 (4/21 and 4/23)
- Parallel computing: OpenMP
- Parallel computing: MPI
- Week 5 (4/28 and 4/30)
- Tom Grandine (Boeing) -- Geometric modeling in Jython
- Scott Collis (Sandia) -- Case studies in extreme-scale applied mathematics -- how applied math makes a difference at the National Labs
- Week 6 (5/5 and 5/7)
- Jeff Gardner (UW TeraGrid Champion) -- Supercomputer resources on the NSF TeraGrid
- Bill Howe, (UW eScience Institute and CSE Department) -- MapReduce and large datasets
- Week 7 (5/12 and 5/14)
- Erika Harnett (ESS) -- GPU programming
- Pavel Bochev (Sandia) -- Trilinos Software Project
- Week 8 (5/19 and 5/21)
- Graphics and Visualization
- John Lewis (Cray) -- Algorithmic issues and benchmarking languages
- Week 9 (5/26 and 5/28)
- Ridgway Scott (University of Chicago) Dependencies and Algorithms
- Louis Fahrberger and Lee Stigle (Sun Microsystems) MySQL for large data sets This talk will be in HUB 108
- Week 10 (6/2 and 6/4)
- Brad Chamberlain (Cray) The Chapel parallel computing language
- NO CLASS on 6/4. At 3:30 you may be interested in attending the MathAcrossCampus talk.
Trac Starting Points
- TracGuide -- Built-in Documentation
- The Trac project -- Trac Open Source Project
- Trac FAQ -- Frequently Asked Questions
- TracSupport -- Trac Support
For a complete list of local wiki pages, see TitleIndex.