The Art of Multiprocessor Programming
by Maurice Herlihy (Author), Nir Shavit (Author)
On This Page
Description
Revised and updated with improvements conceived in parallel programming courses, The Art of Multiprocessor Programming is an authoritative guide to multicore programming. It introduces a higher level set of software development skills than that needed for efficient single-core programming. This book provides comprehensive coverage of the new principles, algorithms, and tools necessary for effective multiprocessor programming. Students and professionals alike will benefit from thorough show more coverage of key multiprocessor programming issues. This revised edition incorporates much-demanded updates throughout the book, based on feedback and corrections reported from classrooms since 2008 Learn the fundamentals of programming multiple threads accessing shared memory Explore mainstream concurrent data structures and the key elements of their design, as well as synchronization techniques from simple locks to transactional memory systems Visit the companion site and download source code, example Java programs, and materials to support and enhance the learning experience. show lessTags
Recommendations
Member Recommendations
Member Reviews
This book gives a thorough introduction into shared-memory multicore programming in two parts. The first part is "Theory": it contains quite a few proofs and introduces essential notions like "sequential consistency (w.r.t. objects)". The second part is "Practice" and gives implementations of important parallel algorithms. Each chapter contains many exercises, which I did not look at.
The whole book (esp. the second part) contains many code examples and uses Java exclusively. Unfortunately, the Java memory-model (or any other memory-model) is not discussed at all. I found it particularly unfortunate that the first part uses Java-pseudo-code in the sense that it does not use "volatile" or Java-atomics but quietly assumes executions that show more are sequentially consistent (w.r.t. memory-model); in other words, one is expected not to ever compile the code. The second part, however, does not suffer from this.
The explanations are clear and the text is carefully written. The material is dense, deep, and often subtle (one has to allot some time to work through). The proofs in the first part are interesting and (with a bit of work) understandable. I would also have liked to see correctness proofs of some algorithms in part two, especially the lock-free ones since their correctness often remained obscure. To this last objection the authors would probably respond that such correctness proofs are beyond the scope of the book. I object anyway. show less
The whole book (esp. the second part) contains many code examples and uses Java exclusively. Unfortunately, the Java memory-model (or any other memory-model) is not discussed at all. I found it particularly unfortunate that the first part uses Java-pseudo-code in the sense that it does not use "volatile" or Java-atomics but quietly assumes executions that show more are sequentially consistent (w.r.t. memory-model); in other words, one is expected not to ever compile the code. The second part, however, does not suffer from this.
The explanations are clear and the text is carefully written. The material is dense, deep, and often subtle (one has to allot some time to work through). The proofs in the first part are interesting and (with a bit of work) understandable. I would also have liked to see correctness proofs of some algorithms in part two, especially the lock-free ones since their correctness often remained obscure. To this last objection the authors would probably respond that such correctness proofs are beyond the scope of the book. I object anyway. show less
Ratings
Members
- Recently Added By
Author Information
Common Knowledge
- Original publication date
- 2008
- First words
- The computer industry is undergoing, if not another revolution, certainly a vigorous shaking-up.
Classifications
- Genres
- Technology, Nonfiction, General Nonfiction
- DDC/MDS
- 005.434 — Computer science, information & general works Computer science, knowledge & systems Artificial Intelligence/Virtual Reality Systems programming and programs Systems programs Process management
- LCC
- QA76.6 .H5244 — Science Mathematics Mathematics Instruments and machines Calculating machines Electronic computers. Computer science
- BISAC
Statistics
- Members
- 174
- Popularity
- 188,921
- Reviews
- 1
- Rating
- (3.79)
- Languages
- Chinese, English, Korean
- Media
- Paper, Ebook
- ISBNs
- 8
- ASINs
- 1




























































