The Art of Multiprocessor Programming (Google eBook)
This book is the first comprehensive presentation of the principles and tools available for programming multiprocessor machines. It is of immediate use to programmers working with the new architectures. For example, the next generation of computer game consoles will all be multiprocessor-based, and the game industry is currently struggling to understand how to address the programming challenges presented by these machines.
This change in the industry is so fundamental that it is certain to require a significant response by universities, and courses on multicore programming will become a staple of computer science curriculums.
The authors are well known and respected in this community and both teach and conduct research in this area. Prof. Maurice Herlihy is on the faculty of Brown University. He is the recipient of the 2003 Dijkstra Prize in distributed computing. Prof. Nir Shavit is on the faculty of Tel-Aviv University and a member of the technical staff at Sun Microsystems Laboratories. In 2004 they shared the Gödel Prize, the highest award in theoretical computer science.
* THE book on multicore programming, the new paradigm of computer science
* Written by the world's most revered experts in multiprocessor programming and performance
* Includes examples, models, exercises, PowerPoint slides, and sample Java programs
What people are saying - Write a review
JCiP on steroids and with a CS degree.
JCiP was more like a sophisticated user's guide to the j.u.c. package API. AoMP explains the algorithms it is based on and how contemporary CPU architectures influence real-life performance.
Doug Lea himself refers to it in the ForkJoinWorkerThread class.
There is a chapter on STM but not a word on Actors.
This title is a good introduction to concurrency with regard to theory. The overall narrative and individual examples are ultimately Java-centric; most concepts are introduced via Java code examples that try to implement parallel and/or distributed algorithms and architectures within the framework of the Java Concurrency packages. This is not a particularly detailed or rigorous text as the authors rely too much on hand-waving arguments to justify their statements. Asymptotic notation and inductive proofs thereof are absent. Low-level hardware details are contained only in an appendix, seemingly as an afterthought.