×

Uh-oh, it looks like your Internet Explorer is out of date.

For a better shopping experience, please upgrade now.

The Art of Multiprocessor Programming / Edition 1
     

The Art of Multiprocessor Programming / Edition 1

4.5 2
by Maurice Herlihy, Nir Shavit
 

ISBN-10: 0123705916

ISBN-13: 9780123705914

Pub. Date: 03/14/2008

Publisher: Elsevier Science

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

Overview

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.

  • The book on multicore programming, the new paradigm of computer science
  • Written by the world's most revered experts in multiprocessor programming and performance
  • Includes examples, models, exercises, PowerPoint slides, and sample Java programs

Product Details

ISBN-13:
9780123705914
Publisher:
Elsevier Science
Publication date:
03/14/2008
Edition description:
New Edition
Pages:
528
Product dimensions:
1.07(w) x 7.50(h) x 9.25(d)

Table of Contents

1 Introduction; 2 Mutual Exclusion; 3 Concurrent Objects and Linearization; 4 Foundations of Shared Memory; 5 The Relative Power of Synchronization Methods; 6 The Universality of Consensus; 7 Spin Locks and Contention; 8 Monitors and Blocking Sychronization; 9 Linked Lists: the Role of Locking; 10 Concurrent Queues and the ABA Problem; 11 Concurrent Stakcs and Elimination; 12 Counting, Sorting and Distributed Coordinatino; 13 Concurrent Hashing and Natural Parallelism; 14 Skiplists and Balanced Search; 15 Priority Queues; 16 Futures, Scheduling and Work Distribution; 17 Barriers; 18 Transactional Memory; Appendices

Customer Reviews

Average Review:

Post to your social network

     

Most Helpful Customer Reviews

See all customer reviews

The Art of Multiprocessor Programming 4.5 out of 5 based on 0 ratings. 2 reviews.
gniff More than 1 year ago
The Art of Multiprocessor Programming is a foundation textbook for a large subject with both theory and practical considerations. It is not a programmer's guide or an application cookbook. Instead it addresses the fundamental problem of concurrent execution within a single program with a shared data space. Then it develops real techniques and explores the issues as they apply to real instruction sets and practical memory architectures of real machines. It introduces and illustrates the fundamental issues, and teaches the student how to think about the problem. Note "student", not "reader." This is not a book to read; it is a book to do. There is a fair amount of theory to gain experience with. The problem sets, while not large, are well chosen. The program illustrations are in Java, and have mistakes whose corrections can be found in online errata. The Art of Multiprocessor Programming will not help you get code past a compiler or pass an exam on Pthreads. But it may help you avoid hard-to-find bugs, and to avoid costly bottlenecks in concurrent programs.
Anonymous More than 1 year ago
Most books out there will give you a bunch of coding, and break it down for you, showing you how it works; I consider most of these part of the "how-to" category. This book, on the other hand, is unique in that it actually teaches the concepts that are used in multi-processor (concurrent/parallel) programming, which is different than multi-threaded programming. It is not a reference book which teaches you what kind of coding to put in your programs to enable parallel programming (of which such an endeavor is close to impossible with such a highly complex subject matter as this), but it will teach you what parallel programming means and how one would go about creating programs that can use multiple streams of processing to collectively work on a single task. While you'd be hard-pressed to find any sort of working excerpt of code in this book; it does a great job explaining how parallel programming works through the use of clever analogies and light, unburdened pseudo-coding. I don't recommend this book for anyone who is interested in a "quick learn" kind of environment. This book is meant for one to deeply understand the underlying subject and spend ample time thinking through and mentally reasoning through the exercises. The subject level of this book would most likely be collegiate level, but do not fear, for the mathematics in this book are not overly complex. A foreknowledge of multi-threading does help, but is not required. Lastly, I have not seen a book like this in my entire career of computer science. What this book offers, no other book will offer. The knowledge within contains decades of collective experience from brilliant minds in the field of computing.