- Shopping Bag ( 0 items )
Posted September 6, 2009
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.Was this review helpful? Yes NoThank you for your feedback. Report this reviewThank you, this review has been flagged.
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.
Posted April 20, 2009
A great book that teachers theory
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.Was this review helpful? Yes NoThank you for your feedback. Report this reviewThank you, this review has been flagged.
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.