Search

Table of Contents
Parallel and Distributed Programming Using C++
BOOK:
Parallel and Distributed Programming Using C++
Browse by Category
 
 
Hide Left Column
Parallel and Distributed Programming Using C++
Parallel and Distributed Programming Using C++
by Cameron Hughes; Tracey Hughes

Publisher: Addison-Wesley Professional
Pub Date: August 25, 2003
Print ISBN-10: 0-13-101376-9
Print ISBN-13: 978-0-13-101376-6
Pages: 720
Slots: 1.0
Start Reading
Buy Print Version
Overview

Parallel and Distributed Programming Using C++ provides an up-close look at how to build software that can take advantage of multiprocessor computers. Simple approaches for programming parallel virtual machines are presented, and the basics of cluster application development are explained. Through an easy-to-understand overview of multithreaded programming, this book also shows you how to write software components that work together over a network to solve problems and do work.

Parallel and Distributed Programming Using C++ provides an architectural approach to parallel programming for computer programmers, software developers, designers, researchers, and software architects. It will also be useful for computer science students.

  • Demonstrates how agents and blackboards can be used to make parallel programming easier

  • Shows object-oriented approaches to multitasking and multithreading

  • Demonstrates how the UML is used to document designs that require parallel or distributed programming

  • Contains the new POSIX/UNIX IEEE Standard for the Pthreads library

 
Editorial Reviews
Product Description
Today, the C++ language remains one of the most important languages used by professional software developers. Many corporations and government agencies have large investments in applications that are developed using the C++ language. Those corporations and government agencies are now Web-enabling their applications. Applications that were originally developed as simple client/server now requires Internet/Intranet face-lifts. This book helps software developers and programmers who need to add the techniques of parallel and distributed programming to existing applications. Parallel programming uses multiple computers, or computers with multiple internal processors, to solve a problem at a greater computational speed than using a single computer. It also offers the opportunity to tackle larger problems; that is, problems with more computational steps or more memory requirements.
 
Reader Reviews From Amazon (Ranked by 'Helpfulness')
Average Customer Rating:based on 10 reviews.
Choppy, redundant, and full of errors, 2009-05-21
Reviewer rating:
In many sections this book lacks a smooth flow of writing. Paragraphs often feel like poorly ordered lists rather than leading from one idea to the next. This is especially true in Chapter 4's description of the Pthreads API.

Much space is dedicated to describing the Pthreads API, both in Chapter 4 and again in Appendix B. Most systems with Pthreads installed have man pages that already supply this information but with fewer errors (for example, see p. 150).

Some of the code examples seem like they were added in a hurry. They are incomplete, not in the sense of omitting implementation details but because they lack basic C++ syntax (e.g., types). If they were intended as language-independent pseudocode this would make sense, but the book is ostensibly about C++. For example, see Examples 4.11.1 and 5.3.1.

A better source for practical tools for parallel programming is Patterns for Parallel Programming by Mattson.
Parallel and Distributed Programming using C++, 2007-12-22
Reviewer rating:
The title was ever so promising. But when I finally got to use this book,my disappointment was limitless.I found myself having to be on the lookout for errors of all sorts instead of learning from the book.While the book is in the 600s in the number of pages,it is rather thin on content on the topics that it covers. Take Chapter 4, "Dividing C++ Programs into Multiple Threads" for instance.The authors do a lot of hand waving explaining what is essentially threads in C (behind some little C++ syntax),and just when you are hoping to learn about threads in the presence of composition (as you might need with nested parallelism) or inheritance, you are met with section 4.11.5 "Creating Multi threaded Objects" that is only one and half pages long and tells you nothing you did not know already. The authors then proceed to add more than hundred pages in the form of appendix B on material that you can get off the internet.I've since decided to use Intel TBB (and bought Intel Threading Building Blocks by Reinders) for my project. With POSIX threads here to stay and parallel programming becoming mainstream,the authors ought to use subsequent editions as opportunity for great improvement.
Wrong title, 2007-06-09
Reviewer rating:
I think that the book is quite good. However, do not look architecture level concepts, neither mathematics, neither an explanation of distributed and parallel concepts (well, there is something...). The title shoudl be something like "C++ tools for distributed and parallel programming"

However, this is the only book I know that introduces the biggest amount of tools in other to implement distributed applications in C++ (in case you do not want to start from sctach). Of course, there are missing thinks like web services, sockets, peer2peer middlewares, etc. However, the explained packages are the most used in the market.
Absolute disaster: the authors know neither parallel programming nor C++, 2007-01-15
Reviewer rating:
Even the bad reviews here are too kind. What can I say about this book? Let us start with Chapter 7, which is about exceptions and error handling -- as applied to parallel programming you'd think. But there is nothing about parallel programming and nothing good about exceptions in this chapter, which reads like a blog written by a C++ programming beginner who has just stumbled upon exceptions and thought, hey this is cool, nothing of the sort in Fortran, let me write about it.

Section 9.2 talks about using template functions for parallel programming. Their examples are of the sort: (if rank is 0, let us call the multiplies() fn that is templated on int; if rank is 1, let us call the multiplies() fn that is templated on double). What were these people smoking?

Section 9.3 overloads stream operators (<<,>>) to do MPI send/recv. This is bad design because the rank of the other process (for one) is an input to the MPI functions, so there is a stream class per other process - which is more messy than convenient. A better design would be to make a communicator class with send(), recv() fns taking the other rank as input. This would also support collective (gather, scatter) communication. Not to mention *unbuffered* MPI send/recv calls can be terribly slow, so there should be some buffering support.

This brings to my basic gripe about this book: it is incredibly shallow. Of course it is garbage to an expert, but even to the dullest of beginners it can be of little use. Just about anything that you can find on parallel programming or C++ is better than this.
Don't worth the money, 2004-09-29
Reviewer rating:
This book is a collection of many topics about MPI, PVM, Pthread, UML, CORBA, etc. None of them explains thoroughly. All the parts don't have coherence and don't have a complete example about parallel and distributed application. Readers would be better off just Google these topics and will find free documents which are far better than this book. It wastes your money to buy this book.
 
Some information above was provided using data from Amazon.com. View at Amazon >
Parallel and Distributed Programming Using C++
Parallel and Distributed Programming Using C++
by Cameron Hughes; Tracey Hughes

Publisher: Addison-Wesley Professional
Pub Date: August 25, 2003
Print ISBN-10: 0-13-101376-9
Print ISBN-13: 978-0-13-101376-6
Pages: 720
Slots: 1.0
Start Reading
Buy Print Version
Company | Terms of Service | Privacy Policy | Contact Us | Help | 508 Compliance | Subscribe Now
© 2009 Safari Books Online. All rights reserved.