Introduction
Advanced interdisciplinary introduction to applied parallel computing on modern supercomputers. Numerical topics include dense and sparse linear algebra, N-body problems, multigrid, fast-multipole, wavelets and Fourier transforms. Geometrical topics include partitioning and mesh generation. Other topics include application-oriented architecture, understanding parallel programming paradigms, MPI, data parallel systems, graphics processors, virtualization, caches and vector processors with hands-on emphasis on understanding the realities and myths of what is possible on the world's fastest machines.
One emphasis for this course will be VHLLs or very high level languages for parallel computing.
A fresh approach to technical computing: Julia programming language. High performance and parallelism from high-level code.
Grading (Tentative)
Homework: 45% (roughly 3 assignments)
Project: 55% (roughly half semester)
You will need to hand in a proposal and final report, and prepare a 5 minute in-class presentation. All reports will be made public and archived unless privacy is specifically requested.