About the Book:
Revised and updated with
improvements conceived in parallel programming courses, The Art of
Multiprocessor Programming is an authoritative guide to multicore programming.
Multicore systems introduce new issues not present in single-core machines, as
well as more advanced tools and knowledge that is required to program them
effectively. The book provides comprehensive coverage of the principles and
algorithmic techniques necessary for effective multiprocessor programming.
Students and professionals alike will benefit from the thorough coverage of the
essential issues that arise in programming multiprocessor. Features - This edition contains
new and substantially revised chapters on concurrency in C++,
data-parallel programming, and hardware transactional memory.
- It includes updates
and corrections throughout, based on feedback provided by parallel
programming classrooms since 2008.
- Readers will learn the
fundamentals of programming multiple threads and accessing shared memory.
- Mainstream concurrent data structures and the
key elements of their design, as well as synchronization techniques, from
simple locks to transactional memory systems, are explored.
|
Contents: 1.
Introduction 2.
Mutual Exclusion 3.
Concurrent Objects 4.
Foundations of Shared Memory 5.
The Relative Power of Primitive
Synchronization Operations 6.
Universality of Consensus 7.
Spin Locks and Contention 8.
Monitors and Blocking Synchronization 9.
Linked Lists: The Role of Locking 10.
Queues, memory management, and the ABA
Problem 11.
Stacks and Elimination 12.
Counting, Sorting and Distributed
Coordination 13.
Concurrent Hashing and Natural Parallelism 14.
Skiplists and Balanced Search 15.
Priority Queues 16.
Scheduling and Work Distribution 17.
Data parallelism 18.
Barriers 19.
Optimism and manual memory management 20. Transactional programming |
About the Author:
Maurice Herlihy has an A.B. in Mathematics from
Harvard University, and a Ph.D. in Computer Science from M.I.T. He has served
on the faculty of Carnegie Mellon University, and the staff of DEC Cambridge
Research Lab. He is the recipient of the 2003 Dijkstra Prize in Distributed
Computing, the 2004 ACM / EATCS Gödel Prize, the 2008 ISCA Influential Paper
Award, the 2012 Edsger W. Dijkstra Prize in Distributed Computing, and the 2013
Wallace McDowell Award. He received a 2012 Fulbright Distinguished Chair in the
Natural Sciences and Engineering Lecturing Fellowship, and he is fellow of the
ACM, the National Academy of Inventors, the National Academy of Engineering,
and the National Academy of Arts and Sciences. He holds the An Wang Chair
Compute Science at Brown University.
Nir Shavit received a B.A. and M.Sc. from the Technion
and a Ph.D. from the Hebrew University, all in Computer Science. He is a
Professor of Computer Science at M.I.T. an ACM Fellow, and a recipient of the
2012 Edsger W. Dijkstra Prize in Distributed Computing and the 2004 ACM / EATCS
Gödel Prize.
Victor Luchangco received a S.B., S.M., and Sc.D. from
M.I.T., all in Computer Science. Since then, he has been a researcher in the
Scalable Sunchronization and Programming Languages Research Groups at Sun Labs
and Oracle Labs, and he now does research on blockchain technology at Algorand.
Michael Spear received a B.S. from the United states Military
Academy and a Ph.D. from the University of Rochester, both in Computer Science.
He is Professor of Computer Science at Lehigh University. |