skip to content
Parallel and distributed programming using C++ Preview this item
ClosePreview this item

Parallel and distributed programming using C++

Author: Cameron Hughes; Tracey Hughes
Publisher: Boston : Addison-Wesley, ©2004.
Edition/Format:   eBook : Document : EnglishView all editions and formats

Provides an up-close look at how to build software that takes advantage of multiprocessor computers. Through an overview of multithreaded programming, this book shows you how to write software  Read more...


(not yet rated) 0 with reviews - Be the first.

More like this

Find a copy online

Links to this item

Find a copy in the library

&AllPage.SpinnerRetrieving; Finding libraries that hold this item...


Additional Physical Format: Print version:
(DLC) 2003016039
Material Type: Document, Internet resource
Document Type: Internet Resource, Computer File
All Authors / Contributors: Cameron Hughes; Tracey Hughes
ISBN: 0131013769 9780131013766
OCLC Number: 53909849
Description: 1 online resource (xxv, 691 pages) : illustrations
Contents: Preface. 1. 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. 2. 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. 3. 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. 4. 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. 5. Synchronizing Concurrency between Tasks. Coordinating Order of Execution. Synchronizing Access to Data. What are Semaphores? Synchronization: An Object-Oriented Approach. Summary. 6. 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. 7. 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. 8. 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. 9. 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. 10. Visualizing Concurrent and Distributed System Design. Visualizing Structures. Visualizing Concurrent Behavior. Visualizing the Whole System. Summary. 11. 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. 12. Implementing Agent-Oriented Architectures. What are Agents? What is Agent-Oriented Programming? Basic Agent Components. Implementing Agents in C++. Multiagent Systems. Summary. 13. Blackboard Architectures Using PVM, Threads, And C++ Components. The Blackboard Model. Approaches to Structuring the Blackboard. The Anatomy of a Knowledge Source. The Control Strategies for Blackboards. Implementing the Blackboard Using CORBA Objects. Implementing the Blackboard Using Global Objects. Activating Knowledge Sources Using Pthreads. Summary. Appendix A. Class and Object Diagrams. Interaction Diagrams. State Diagrams. Package Diagrams. Appendix B. Bibliography. Index.
Responsibility: Cameron Hughes, Tracey Hughes.


User-contributed reviews
Retrieving GoodReads reviews...
Retrieving DOGObooks reviews...


Be the first.
Confirm this request

You may have already requested this item. Please select Ok if you would like to proceed with this request anyway.

Linked Data

Primary Entity

<> # Parallel and distributed programming using C++
    a schema:CreativeWork, schema:MediaObject, schema:Book ;
   library:oclcnum "53909849" ;
   library:placeOfPublication <> ; # Boston
   library:placeOfPublication <> ;
   schema:about <> ; # C++ (Computer program language)
   schema:about <> ; # Electronic data processing--Distributed processing
   schema:about <> ; # Electronic data processing--Distributed processing
   schema:about <> ;
   schema:about <> ; # Parallel programming (Computer science)
   schema:bookFormat schema:EBook ;
   schema:contributor <> ; # Tracey Hughes
   schema:copyrightYear "2004" ;
   schema:creator <> ; # Cameron Hughes
   schema:datePublished "2004" ;
   schema:exampleOfWork <> ;
   schema:inLanguage "en" ;
   schema:isSimilarTo <> ;
   schema:name "Parallel and distributed programming using C++"@en ;
   schema:productID "53909849" ;
   schema:publication <> ;
   schema:publisher <> ; # Addison-Wesley
   schema:url <> ;
   schema:workExample <> ;
   wdrs:describedby <> ;

Related Entities

<> # Boston
    a schema:Place ;
   schema:name "Boston" ;

<> # Addison-Wesley
    a bgn:Agent ;
   schema:name "Addison-Wesley" ;

<> # Electronic data processing--Distributed processing
    a schema:Intangible ;
   schema:name "Electronic data processing--Distributed processing"@en ;

<> # Parallel programming (Computer science)
    a schema:Intangible ;
   schema:name "Parallel programming (Computer science)"@en ;

<> # C++ (Computer program language)
    a schema:Intangible ;
   schema:name "C++ (Computer program language)"@en ;

<> # Electronic data processing--Distributed processing
    a schema:Intangible ;
   schema:name "Electronic data processing--Distributed processing"@en ;

<> # Cameron Hughes
    a schema:Person ;
   schema:birthDate "1960" ;
   schema:familyName "Hughes" ;
   schema:givenName "Cameron" ;
   schema:name "Cameron Hughes" ;

<> # Tracey Hughes
    a schema:Person ;
   schema:familyName "Hughes" ;
   schema:givenName "Tracey" ;
   schema:name "Tracey Hughes" ;

    a schema:ProductModel ;
   schema:isbn "0131013769" ;
   schema:isbn "9780131013766" ;

    a schema:CreativeWork ;
   schema:description "Print version:" ;
   schema:isSimilarTo <> ; # Parallel and distributed programming using C++

Content-negotiable representations

Close Window

Please sign in to WorldCat 

Don't have an account? You can easily create a free account.