ISBN-10:
0201575949
ISBN-13:
9780201575941
Pub. Date:
02/14/1995
Publisher:
Pearson
Designing and Building Parallel Programs: Concepts and Tools for Parallel Software Engineering / Edition 1

Designing and Building Parallel Programs: Concepts and Tools for Parallel Software Engineering / Edition 1

by FOSTER

Paperback

Current price is , Original price is $174.8. You

Temporarily Out of Stock Online

Please check back later for updated availability.

Item is available through our marketplace sellers.

Product Details

ISBN-13: 9780201575941
Publisher: Pearson
Publication date: 02/14/1995
Edition description: New Edition
Pages: 430
Product dimensions: 6.22(w) x 9.05(h) x 0.94(d)

About the Author

I hold positions as Scientist in the Mathematics and Computer Science Division at Argonne National Laboratory, and Associate Professor of Computer Science at the University of Chicago. I lead computer science projects developing parallel languages and tools and a computational science effort developing parallel climate models. My major research interests are in various aspects of parallel and distributed computing: algorithms, languages, tools. Recently, I've been working on the techniques required to integrate high-performance computing into large-scale internetworked environments.

0201575949AB04062001

Read an Excerpt

Preface

Welcome to Designing and Building Parallel Programs! My goal in this book is to provide a practitioner's guide for students, programmers, engineers, and scientists who wish to design and build efficient and cost-effective programs for parallel and distributed computer systems. I cover both the techniques used to design parallel programs and the tools used to implement these programs. I assume familiarity with sequential programming, but no prior exposure to parallel computing.

Designing and Building Parallel Programs promotes a view of parallel programming as an engineering discipline, in which programs are developed in a methodical fashion and both cost and performance are considered in a design. This view is reflected in the structure of the book, which is divided into three parts. The first part, Concepts, provides a thorough discussion of parallel algorithm design, performance analysis, and program construction, with numerous examples to illustrate fundamental principles. The second part, Tools, provides an in-depth treatment of four parallel programming tools: the parallel languages Compositional C++ (CC++), Fortran M (FM), and High Performance Fortran (HPF), and the Message Passing Interface (MPI) library. HPF and MPI are standard parallel programming systems, and CC++ and FM are modern languages particularly well-suited for parallel software engineering. Part II also describes tools for collecting and analyzing performance data. The third part, Resources surveys some fundamental parallel algorithms and provides many pointers to other sources of information.

A unique feature of this book is that it is also a guide to a larger resource accessible viathe Internet and the World Wide Web. Designing and Building Parallel Programs (Online) provides online access to the book's contents and also allows you to download the parallel tools described in the book, to access example programs and other educational materials, and to browse through a wealth of other online information on parallel and distributed computing. The online version is described in Chapter 13.

Table of Contents

I. DESIGN.


1. Parallel Computers and Computation.

Parallelism and Computing.

A Parallel Machine Model.

Other Parallel Machine Models.

A Parallel Programming Model.

Parallel Algorithms.


2. Designing Parallel Algorithms.

Methodical Design.

Partitioning.

Communication.

Agglomeration.

Mapping.

Case Study: Climate Modeling.

Case Study: Floorplan Optimization.

Case Study: Computational Chemistry.


3. A Quantitative Basis for Design.

Defining Performance.

Approaches to Performance.

Modeling Performance.

Performance Modeling and Design.

Experimental Studies.

Evaluating Implementations.

A Refined Communication Cost Model.

Input/Output.


4. Putting It All Together.

Modular Design.

Modularity and Parallel Programming.

Data Distribution.

Sequential Composition.

Performance Analysis.

Templates.

II. TOOLS.


5. Fortran M.

Introduction.

Concurrency.

Communication.

Unstructured Communication.

Probing for Pending Messages.

Argument Passing.

Determinism.

Mapping.

Performance Issues.

Case Study: Finite Difference.

Case Study: Floorplan Optimization.


6. Modular C Data Parallel Languages.

Data Parallelism.

Fortran 90.

High Performance Fortran.

Integrating Task and Data Parallelism.


7. Message Passing Libraries.

The MPI Programming Model.

MPI Basics.

Global Operations.

Querying Received and Pending Messages.

Derived Data Types.

Modularity.

Performance.

Other MPI Features.


8. Performance Tools.

Profiling Tools.

Tracing Tools.

Timers.

III. BUILDING BLOCKS.


9. Availability of Software. 0201575949T04062001

Preface

Preface

Welcome to Designing and Building Parallel Programs! My goal in this book is to provide a practitioner's guide for students, programmers, engineers, and scientists who wish to design and build efficient and cost-effective programs for parallel and distributed computer systems. I cover both the techniques used to design parallel programs and the tools used to implement these programs. I assume familiarity with sequential programming, but no prior exposure to parallel computing.

Designing and Building Parallel Programs promotes a view of parallel programming as an engineering discipline, in which programs are developed in a methodical fashion and both cost and performance are considered in a design. This view is reflected in the structure of the book, which is divided into three parts. The first part, Concepts, provides a thorough discussion of parallel algorithm design, performance analysis, and program construction, with numerous examples to illustrate fundamental principles. The second part, Tools, provides an in-depth treatment of four parallel programming tools: the parallel languages Compositional C++ (CC++), Fortran M (FM), and High Performance Fortran (HPF), and the Message Passing Interface (MPI) library. HPF and MPI are standard parallel programming systems, and CC++ and FM are modern languages particularly well-suited for parallel software engineering. Part II also describes tools for collecting and analyzing performance data. The third part, Resources surveys some fundamental parallel algorithms and provides many pointers to other sources of information.

A unique feature of this book is that it is also a guide to alarger resource accessible via the Internet and the World Wide Web. Designing and Building Parallel Programs (Online) provides online access to the book's contents and also allows you to download the parallel tools described in the book, to access example programs and other educational materials, and to browse through a wealth of other online information on parallel and distributed computing. The online version is described in Chapter 13.



Customer Reviews

Most Helpful Customer Reviews

See All Customer Reviews