Multithreaded Parallelism: Languages and Compilers
MIT OpenCourseWare graduate course on the languages and compiler techniques used to exploit multithreaded parallelism. Covers implicit parallel programming through functional languages and their extensions, higher-order functions, non-strictness, and polymorphism, then moves to explicit parallel programming and nondeterminism. The lambda calculus and its variants, term rewriting, and operational semantics ground the theory, while later sessions address compiling multithreaded code for symmetric multiprocessors and clusters along with static analysis and compiler optimizations. The course is worth 4 Engineering Design Points at MIT and includes the standard OCW materials: lecture notes, readings, and assignments, free to access under MIT's open license with no certificate offered.