Skip to content

Parallel and Distributed Programming Using C++

Best in textbook rentals since 2012!

ISBN-10: 0131013769

ISBN-13: 9780131013766

Edition: 2004

Authors: Cameron Hughes, Tracey Hughes

List price: $54.99
Blue ribbon 30 day, 100% satisfaction guarantee!
Out of stock
We're sorry. This item is currently unavailable.
what's this?
Rush Rewards U
Members Receive:
Carrot Coin icon
XP icon
You have reached 400 XP and carrot coins. That is the daily max!

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…    
Customers also bought

Book details

List price: $54.99
Copyright year: 2004
Publisher: Addison Wesley Professional
Publication date: 8/25/2003
Binding: Hardcover
Pages: 720
Size: 7.25" wide x 9.25" long x 1.50" tall
Weight: 2.684
Language: English

Preface
The Joys of Concurrent Programming
What is Concurrency?
The Benefits of Parallel Programming
The Benefits of Distributed Programming
The Minimal Effort Required
The Basic Layers of Software Concurrency
No Keyword Support for Parallelism in C++
Programming Environments for Parallel and Distributed Programming
Summary-Toward Concurrency
The Challenges of Parallel and Distributed Programming
The Big Paradigm Shift
Coordination Challenges
Sometimes Hardware Fails and Software Quits
Too Much Parallelization or Distribution Can Have Negative Consequences
Selecting a Good Architecture Requires Research
Different Techniques for Testing and Debugging are Required
The Parallel or Distributed Design Must Be Communicated
Summary
Dividing C++ Programs into Multiple Tasks
Process: A Definition
Anatomy of a Process
Process States
Process Scheduling
Context Switching
Creating a Process
Terminating a Process
Process Resources
What are Asynchronous and Synchronous Processes?
Dividing the Program into Tasks
Summary
Dividing C++ Programs into Multiple Threads
Threads: A Definition
The Anatomy of a Thread
Thread Scheduling
Thread Resources
Thread Models
Introduction to the Pthread Library
The Anatomy of a Simple Threaded Program
Creating Threads
Managing Threads
Thread Safety and Libraries
Dividing Your Program into Multiple Threads
Summary
Synchronizing Concurrency between Tasks
Coordinating Order of Execution
Synchronizing Access to Data
What are Semaphores?
Synchronization: An Object-Oriented Approach
Summary
Adding Parallel Programming Capabilities to C++ through the PVM
The Classic Parallelism Models Supported by PVM
The PVM Library for C++
The Basic Mechanics of the PVM
Accessing Standard Input (stdin) and Standard Output (stdout) within PVM Tasks
Summary
Error Handling, Exceptions, and Software Reliability
What is Software Reliability?
Failures in Software Layers and Hardware Components
Definitions of Defects Depend on Software Specifications
Recognizing Where to Handle Defects versus Where to Handle Exceptions
Software Reliability: A Simple Plan
Using Map Objects in Error Handling
Exception Handling Mechanisms in C++
Event Diagrams, Logic Expressions, and Logic Diagrams
Summary
Distributed Object-Oriented Programming in C++
Decomposition and Encapsulation of the Work
Accessing Objects in Other Address Spaces
The Anatomy of a Basic CORBA Consumer
The Anatomy of a CORBA Producer
The Basic Blueprint of a CORBA Application
The Naming Service
A Closer Look at Object Adapters
Implementation and Interface Repositories
Simple Distributed Web Services Using CORBA
The Trading Service
The Client/Server Paradigm
Summary
SPMD and MPMD Using Templates and the MPI
Work Breakdown Structure for the MPI
Using Template Functions to Represent MPI Tasks
Simplifying MPI Communications
Summary
Visualizing Concurrent and Distributed System Design
Visualizing Structures
Visualizing Concurrent Behavior
Visualizing the Whole System
Summary
Designing Components That Support Concurrency
Taking Advantage of Interface Classes
A Closer Look at Object-Oriented Mutual Exclusion and Interface Classes
Maintaining the Stream Metaphor
User-Defined Classes Designed to Work with PVM Streams
Object-Oriented Pipes and fifos as Low-Level Building Blocks
Framework Classes Components for Concurrency
Summary
Implementing Agent-Oriented Architectures
What are Agents?
What is Agent-Oriented Programming?
Basic Agent Components
Implementing Agents in C++
Multiagent Systems
Summary