World Famous Comics NetworkWorld Famous Comics Network World Famous Comics CommunityComic Book ClassifiedsSketchCards.com
WFC Home | About | Columns | Comics | Contests | Features | Freebies | Gallery | Links | News | Podcasts | Shop
SHOP >> David Mack | Andy Lee | Amy Allen | Michonne | Dean Haglund | Virginia Hey | WFC Published | WFC Auctions



ScheduleUPDATED TODAY! Fri, 5-Dec-2008
Anything Goes TriviaAnything Goes Trivia
Bob Rozakis
Megaton ManMegaton Man
Don Simpson
TrevorTrevor
Piper & Lee


NewsNEWS 5-Dec-2008 12:54am
Miller Says Sin City 2 is Getting Closer
First Shot From the Wolverine Game!
Update: Dragonball Gets a New Title?
‘Punisher: War Zone' review: Don't...

Comic Book - Movie - Video Game - Anime 

Friends & Affiliates
Adobe Store
Amazon.com
Anime Studio
Apple Store
Dick Blick Art Materials
eBay
GoDaddy.com

StarWarsShop.com
TFAW
World Famous Comics: The Art of Multiprocessor Programming
The Art of Multiprocessor Programming
By: Maurice Herlihy, Nir Shavit
Publisher: Morgan Kaufmann
Average Rating:4.50 out of 5.00 stars
Binding: Paperback
Label: Morgan Kaufmann
Number of Items: 1
Number of Pages: 528
Publication Date: March 03, 2008

Enlarge Image
The Art of Multiprocessor Programming
List Price: $69.95
Used Price: $44.00
3rd Party New: $47.98
Amazon's Price: $62.95

You Save: $7.00 (10%)
Usually ships in 24 hours


Similar Items

Patterns for Parallel Programming (Software Patterns Series)

Intel Threading Building Blocks: Outfitting C++ for Multi-core Processor Parallelism

Programming Erlang: Software for a Concurrent World

Transactional Memory (Synthesis Lectures on Computer Architecture)

Synchronization Algorithms and Concurrent Programming
More Similar Items...

Editorial Comments

Product Description:
This book is the first comprehensive presentation of the principles and tools available for programming multiprocessor machines. It is 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.
The authors are well known and respected in this community and both teach and conduct research in this area. Prof. Maurice Herlihy is on the faculty of Brown University. He is the recipient of the 2003 Dijkstra Prize in distributed computing. Prof. Nir Shavit is on the faculty of Tel-Aviv University and a member of the technical staff at Sun Microsystems Laboratories. In 2004 they shared the Gödel Prize, the highest award in theoretical computer science.

* 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


Customer Reviews
Average Rating:4.50 out of 5.00 stars

4 out of 5 starsChallenging
This book is challenging. Several occasions I flipped between chapters reviewing earlier notational details I thought I understood only to come to the conclusion the book is inconsistent in usage. An example of this the introduction of the precedence relation operator "->" (a right pointing arrow). -> is a total order on events, partial order on intervals. Events are denoted with lower-case labels while intervals upper-case, unless of course the upper-case label is denoting a thread/memory location/some other entity. The problem is by the time it's important to recall upper-case really does mean interval, there's been numerous examples where it hasn't. The material is challenging enough without this ambiguity. That said the notation introduced in chapters 2 & 3 have me excited for what's to come (I've just completed ch 3).

English description is good at communicating the broad sense while formal notation is needed to be rigorous. Throughout chapter 3 I was wanting more of both.

Finally like another reviewer I've noticed discrepancies between code and text. If you're experiencing a WTF moment, review twice break review again, then hit the errata. I'm hopeful my submitted erratum will help others.

To get the most out of this book do yourself a favor visit the companion site to get the slides and errata. Then hit iTunes U and look up Maurice Herlihy.



5 out of 5 starsEverything I expected it to be, and then some
If you've already gotten your feet wet with multi-threaded programming, but you haven't been able to maximize concurrency yet, this is the book you need. It includes thorough explanations of all the latest approaches and algorithms. And with multi-core processors becoming ubiquitous, this book will remain of lasting value.



5 out of 5 starsAn invaluable resource for contemporary programmers
This book gives programmers the practical and theoretical tools they need to adapt to the proliferation of multi-core machines. It opens with six chapters on theoretical subjects. These chapters are fascinating in their own right as well as directly applicable to my daily work. I thought the most important subjects were wait-free synchronization (every method completes in a finite number of steps), lock-free synchronization (some method completes in a finite number of steps), and some computability proofs. The authors use computability to demonstrate the equivalence of several types of synchronization primitives. They also present some impossibility proofs that show you how to avoid trying to solve unsolvable problems. The computability results and synchronization guarantees combine to give you the tools to determine whether one concurrent algorithm is "better" than another.

The remainder of the book is devoted to practical subjects. These chapters cover locks, a variety of data structures, work scheduling, and some miscellaneous topics. Java's java.util.concurrent package provides production-quality implementations of most of these data structures. The authors know this, and they use the data structures chapters to demonstrate generally applicable techniques while avoiding unnecessary implementation details. The work scheduling chapter is a sobering reminder of the difficulty inherent in fully exploiting highly parallel architectures. The authors show how to use recurrences to analyze the relative speedup an algorithm gains by running on P processors instead of a single processor. Combining this with the discussion of Ahmdal's Law earlier in the book we see that the essential math behind parallelism severely penalizes you for seemingly small sequential portions of your code. I also found the counting networks chapter fascinating, as I had never encountered that material before.

The book also provides appendices aimed at bringing inexperienced readers up to speed. That said, I wouldn't recommend this book for inexperienced programmers. The material is challenging. If you are looking for a gentler introduction to this subject, consider Java Concurrency in Practice. Each chapter ends with a note describing the history of the material and providing pointers to the bibliography. These demonstrate that the authors have been significant contributors to this field. I do agree with the review from Vyacheslav Imameyev - some of the code samples are wrong. I think they missed "volatile" keywords in several places. I don't see this as a cookbook, so I'm still giving the book five stars.

Highly parallel machines are here to stay. Programmers need to adapt to this or suffer competitive disadvantage. This is the book to read in order to meet that challenge.



4 out of 5 starsThe content is brilliant, the code is sometimes misleading
The content is perfect and deserves 5 stars and I agree with the 5 stars comments, but the code deserves the only 3 stars as there are a lot of flaws in it - the code even contradicts its description( both in the book and in the code downloaded from a site ). For example, at chapter 8.3.1 the Readers-Writers ( i.e. multiple-readers-multiple-writers as the name suggests ) implementation is actually a multiple-readers-single-writer as the WriteLock.lock() method doesn't protect from multiple writers( there is a mention about a single writer in the text but the paragraph name suggests multiple writers ). The code at 8.3.2 is just misleading and doesn't match the description - again the WriteLock.lock() is flawed - it frees the lock if readAcquires != readReleases thus allowing the ReadLock.lock() method to acquire the lock and increment the readAcquires counter which results in the writer starvation and lost of fairness( should be FIFO ) and again there is no protection from multiple writers but the "Readers-Writers lock" name suggests that it should be. And as the last blow the code in 8.3.2 suffers from the lost-wakeup problem described two pages before - the WriterLock.unlock() method doesn't wake up the readers waiting in condition.await(). But there is a rehabilitation for the authors - the description for the code doesn't contain the flaws mentioned above - it is absolutely correct! The Chapter 8 drove me mad by its discrepancy between the text and the code!
So, I got suspicious about the code in the book but not about the description.
I rated the book 4 stars as the content and description( including pictures )is brilliant but the code is sometimes wrong and misleading ( I think it was copy-pasted from the old authors's works ), if the code had not contained such bizarre flaws I would have rated 5 stars as the content is really perfect and shows the authors expertise in the field.



5 out of 5 starsExcellent book
Took the class from Herlihy that goes with this book. He's an extremely intelligent and knowledgeable man, and the book is invaluable. I will be using it many times in my future computer science career. Lots of valuable reference information, algorithms, proofs of correctness (critical for parallel systems!), and key core concepts that help you think about multiprocessor problems in new ways.


Related Categories:Similar Items

Patterns for Parallel Programming (Software Patterns Series)

Intel Threading Building Blocks: Outfitting C++ for Multi-core Processor Parallelism

Programming Erlang: Software for a Concurrent World

Transactional Memory (Synthesis Lectures on Computer Architecture)

Synchronization Algorithms and Concurrent Programming
More Similar Items...

Books
 Comics
  Comic Strips
  How to Draw Comics
  How to Draw Manga

 Graphic Novels
  AiT/Planet Lar
  Alternative Comics
  Archie Comics
  Avatar Press
  DC Comics
    Batman
    Justice League
    Superman
  Dark Horse Comics
    Hellboy
    Sin City
    Star Wars
  Drawn & Quarterly
  Devil's Due Publishing
  Dreamwave
  Fantagraphics Books
  Gemstone/Gladstone
  IDW Publishing
  Image Comics
  Kitchen Sink Press
  Marvel Comics
    Fantastic Four
    Spider-Man
    Wolverine
    X-Men
  Oni Press
  SLG/Slave Labor
  TwoMorrows
  Top Shelf Productions

 Manga
  ADV Manga
  Antarctic Press
  Central Park Media
  Digital Manga
  Gutsoon
  TokyoPop
  Viz Communications

 Books
  Animation
  Antiques & Collectibles
  Art Instruction & Ref.
  Art Reference
  Arts
  Business
  Cartooning
  Children's
  Computer Graphics
  Computers & Internet
  Digital Business
  Drawing (general)
  Entertainment
  Entrepreneurship
  Figure Drawing
  Games
  Graphic Design
  Horror
  Humor
  Literature & Fiction
  Movies
  Music
  Mystery & Thrillers
  Nonfiction
  Photography
  Pop Culture Collectibles
  Popular Culture
  Publishing & Books
  Reference
  Role Playing & Fantasy
  Sci-Fi & Fantasy
  Screenwriting Film
  Screenwriting TV
  Sketchbooks/Journals
  Stationary
  Teens
  Television
  Toys
  Video Games
  Writing

 Calendars


WFC Home | About | Columns | Comics | Contests | Features | Freebies | Gallery | Links | News | Podcasts | Shop



World Famous Comics Network
World Famous Comics Community
ComicsCommunity.com
Comic Book Classifieds
ComicBookClassifieds.com
SketchCards.com
SketchCards.com

GO SHOPPING >>

© 1995 - 2008 World Famous Comics. All rights reserved. All other © & ™ belong to their respective owners.
Advertiser Info . Terms of Use . Privacy Policy . Contact Info
World Famous Comics Network