Computing Reviews
Today's Issue Hot Topics Search Browse Recommended My Account Log In
Review Help
Search
The art of multiprocessor programming (rev. ed.)
Herlihy M., Shavit N., Morgan Kaufmann Publishers Inc., San Francisco, CA, 2012. 536 pp. Type: Book (978-0-123973-37-5)
Date Reviewed: Apr 18 2013

The updated version of this groundbreaking book contains corrections and modifications the authors made based on reader feedback to the already-excellent original edition. The updates came out of improvements suggested by instructors using the book in programming courses. The new version preserves the outline of the original text and is also divided into three parts.

Following a brief introduction that sets the stage for what’s to come, the first part, “Principles,” is theoretical. It familiarizes the reader with what can actually be computed in the asynchronous concurrent environment of the multicore world. Chapter 2 discusses solutions to the mutual exclusion problem and their limitations. Chapter 3 does the same for concurrent objects. Chapter 4 discusses shared memory register and snapshot constructions. Chapter 5 considers what is needed to solve a given synchronization problem, namely, consensus, and chapter 6 explains the universality of consensus. That is, it justifies the focus on consensus in the preceding chapter.

Part 2, “Practice,” focuses on performance. Unlike the sequential case in which developers can take advantage of well-understood abstractions, in a multiprocessor setting, a developer must often be aware of the underlying memory system to be able to maximize performance. Chapter 7 discusses spin locks and contention. Chapter 8 covers monitors and blocking synchronization. Locking is explained in chapter 9, with an example of linked lists, while concurrent queues and the ABA problem are the topics of chapter 10. This is followed by discussions of concurrent stacks and elimination in chapter 11; counting, sorting, and distributed coordination in chapter 12; concurrent hashing in chapter 13; skip lists and balanced search in chapter 14; priority queues in chapter 15; scheduling and work distribution in chapter 16; barriers in chapter 17; and transactional memory in chapter 18. Throughout the book, concepts are illustrated with Java examples and Java-based programming exercises.

Part 3 is a useful appendix that starts with the Java language constructs needed to understand the Java code examples and write concurrent programs in Java. A second chapter introduces the reader to the multiprocessor hardware architecture.

The incorporated updates help to clarify and simplify the content. The book is largely self-contained, has countless examples, and focuses on what really matters. As such, it is very well suited for both a teaching environment and for practitioners looking for an opportunity to learn about this topic. Readers are expected to have a certain level of mathematical maturity, especially in the first part of the book. At the same time, all difficult concepts are illustrated with clear and concise examples. The book is written in a way that makes multiprocessor programming accessible. This updated version will further confirm its status as a classic.

Reviewer:  Burkhard Englert Review #: CR141152 (1307-0571)
Bookmark and Share
  Reviewer Selected
Featured Reviewer
 
 
Multiprocessing/ Multiprogramming/ Multitasking (D.4.1 ... )
 
 
Parallel Programming (D.1.3 ... )
 
 
Multiple Data Stream Architectures (Multiprocessors) (C.1.2 )
 
Would you recommend this review?
yes
no
Other reviews under "Multiprocessing/Multiprogramming/Multitasking": Date
Algorithms for scheduling homogeneous multiprocessor computers
Ondáš J., Springer-Verlag, London, UK, 1984. Type: Book (9789780387136578)
Aug 1 1985
Parallel programming
Perrott R., Addison-Wesley Longman Publishing Co., Inc., Boston, MA, 1987. Type: Book (9789780201142310)
Jul 1 1988
Operating systems: communicating with and controlling the computer
Keller L., Prentice-Hall, Inc., Upper Saddle River, NJ, 1988. Type: Book (9789780136380405)
Sep 1 1989
more...

E-Mail This Printer-Friendly
Send Your Comments
Contact Us
Reproduction in whole or in part without permission is prohibited.   Copyright 1999-2024 ThinkLoud®
Terms of Use
| Privacy Policy