Foundations of Multithreaded, Parallel, and Distributed Programming covers, and then applies, the core concepts and techniques needed for an introductory course in this subject. Its emphasis is on the practice and application of parallel systems, using real-world examples throughout.
Greg Andrews teaches the fundamental concepts of multithreaded, parallel and distributed computing and relates them to the implementation and performance processes. He presents the appropriate breadth of topics and supports these discussions with an emphasis on performance.
- Emphasizes how to solve problems, with correctness the primary concern and performance an important, but secondary, concern
- Includes a number of case studies which cover such topics as pthreads, MPI, and OpenMP libraries, as well as programming languages like Java, Ada, high performance Fortran, Linda, Occam, and SR
- Provides examples using Java syntax and discusses how Java deals with monitors, sockets, and remote method invocation
- Covers current programming techniques such as semaphores, locks, barriers, monitors, message passing, and remote invocation
- Concrete examples are executed with complete programs, both shared and distributed
- Sample applications include scientific computing and distributed systems