The art of multiprocessor programming /
Maurice Herlihy and Nir Shavit.
- Amsterdam ; London : Elsevier/Morgan Kaufmann, 2008.
- xx, 508 p. : ill. ; 24 cm.
Includes bibliographical references and index.
Principles. Mutual exclusion ; Concurrent objects ; Foundations of shared memory ; The relative power of primitive synchronization operations ; Universality of consensus -- Practice. Spin locks and contention ; Monitors and blocking synchronization ; Linked lists : the role of locking ; Concurrent queues and the ABA problem ; Concurrent stacks and elimination ; Counting, sorting, and distributed coordination ; Concurrent hashing and natural parallelism ; Skiplists and balanced search ; Priority queues ; Futures, scheduling, and work distribution ; Barriers ; Transactional memory -- Appendix. Software basics ; Hardware basics.
Multiprocessor programming, also known as multicore programming, requires new principles, algorithms, and programming tools. This book provides a comprehensive presentation of the principles and tools available for programming multiprocessor machines. It will be of immediate use to programmers working with the new architectures.