31 of 32 people found the following review helpful:
5.0 out of 5 stars
an excellent intro to medium book on parallel programming, 13 April 2000
By A Customer - Published on Amazon.com
This review is from: Foundations of Multithreaded, Parallel and Distributed Programming (Paperback)
The book provides all material needed for a beginner to easily acquire knowledge required for development and beginner's research in the field of parallel computation. It's written though not for a beginner in programming, solid basics and initial knowledge of OS internals are prerequisites. I found it's easy to read and understand with a mass of useful examples and with coverage of MPI and Java. This was especially important to since it bridges the theory in the earlier sections with practical implementations using production environment tools. In overall I strongly recommend it for those who are new to the field. For a more deep discussion on parallel algorithms one may want to look at F.T. Leighton's "Intro to Parallel Algorithms and Architectures: Arrays, Trees, Hypercubes" - that one is much more technical though.
4 of 4 people found the following review helpful:
5.0 out of 5 stars
Dr. Andrews knows this topic, 22 July 2009
By B. Baker - Published on Amazon.com
This review is from: Foundations of Multithreaded, Parallel and Distributed Programming (Paperback)
The author of this text, Dr. Andrews, has dealt with the theory and implementation of parallel/multithreaded/distributed in computer systems since the 70s. I was fortunate to take his class at the University of Arizona in which this book was used as the primary text.
Unlike many textbooks of its ilk, Dr. Andrews does use coded examples, but they are not complex code excerpts that span several pages. He does an excellent job of covering the topic in both C with Posix, Java, as well as the language he worked on MPD. Since this topic has been his primary focus he really knows the subject matter yet can explain it in a way such that anyone with moderate programming skills can grasp.
Just like his lectures, the fundamentals and theory presented in each chapter is always structured, explained, and numerous examples are given to reinforce the topics that are being taught. I would recommend this book to anyone who requires an introductory to medium exposure to the critical topic of multithreaded, parallel and distributed programming.
2 of 2 people found the following review helpful:
4.0 out of 5 stars
Very good book, 17 Nov 2010
By W. Ghost - Published on Amazon.com
This review is from: Foundations of Multithreaded, Parallel and Distributed Programming (Paperback)
This book is clear, easy to read and nicely organized.
The contents are summarized below:
Chapter 1 begins with an introduction to concurrent computing;
PART I: SHARED MEMORY
Chapter 2 explains processes and synchronization, including a very easy introduction to axiomatic semantics;
Chapter 3 explains locks and barriers (both use and implementation);
Chapter 4 is dedicated to semaphores and their use (examples of use include mutual exclusion, barriers, producer/consumer, reader/writers);
Chapter 5 is about monitors, and this is where condition variables are introduced (they're not treated separately as in POSIX, but the author does mention POSIX mutexes+cond.vars approach). Examples include bounded buffer, readers/writer, interval timer, sleeping barber, and a disck scheduling system. There is a section on Java and another one on pthreads;
Chapter 6 goes into details of implementation of semaphores and monitors;
PART II: DISTRIBUTED PROGRAMMING
Chapter 7 is about message passing -- first asynchronous then synchronous. Case studies include CSP, Linda, MPI and Java;
Chapter 8 goes into RPC and rendezvous, and case studies are Ada, SR and Java. The examples here include a remote database andsorting network;
Chapter 9 deals with ways in which processes may interact. Here the author uses as examples sparse matrix multiplication, cellular automata, and other problems;
Chapter 10 is about implementation details of message-passing mechanisms, RPC and distributed shared memory;
PART III: PARALLEL PROGRAMMING
Chapter 11 is about scientific computing (number-crunching stuff). Grid computing, particle computations, matrix computations;
Chapter 12 discusses MPI, parallelzing compilers, programming languages and tools and their support for concurrent programming.
Each chapter has a section with historical notes, references and LOTS of exercises.