Parallel Programming for Multicore Machines Using OpenMP and MPI
MIT OpenCourseWare offers this hands-on introduction to parallel computing for numerical applications, covering both shared memory programming with OpenMP and distributed memory programming with MPI. The course builds from fundamentals of multicore architecture to practical coding exercises, teaching students how to parallelize numerical algorithms and evaluate performance tradeoffs between the two models. Materials include lecture notes and programming assignments aimed at students who already have some background in scientific computing. The course grew out of MIT's Earth, Atmospheric, and Planetary Sciences department, reflecting its origin in real numerical modeling needs rather than abstract computer science theory. As with other MIT OpenCourseWare offerings, all materials are free to access under a Creative Commons license, with no certificate offered. It suits students or researchers who need to speed up simulations or data processing by exploiting multiple processors or distributed clusters.