The Art of Multiprocessor Programming
The Art of Multiprocessor Programming promises to be the first comprehensive presentation of the principles and tools available for programming multiprocessor machines.
As the computer industry changes from single-processor to multiprocessor architectures, this revolution requires a fundamental change in how programs are written. To leverage the performance and power of multiprocessor programming, also known as multicore programming, programmers need to learn the new principles, algorithms, and tools.
The book will be 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.
This book includes fully-developed Java examples detailing data structures, synchronization techniques, transactional memory, and more.
Students in multiprocessor and multicore programming courses and engineers working with multiprocessor and multicore systems will find this book quite useful.
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.