Principles of Parallel Programming

by ;
Edition: 1st
Format: Hardcover
Pub. Date: 2008-02-26
Publisher(s): Pearson
  • Complimentary 7-Day eTextbook Access - Read more
    When you rent or buy this book, you will receive complimentary 7-day online access to the eTextbook version from your PC, Mac, tablet, or smartphone. Feature not included on Marketplace Items.
List Price: $226.65

Buy New

In Stock
$219.85

Buy Used

Usually Ships in 24-48 Hours
$181.32

Rent Textbook

Select for Price
There was a problem. Please try again later.

Rent Digital

Rent Digital Options
Online:180 Days access
Downloadable:180 Days
$77.99
Online:1825 Days access
Downloadable:Lifetime Access
$113.99
*To support the delivery of the digital material to you, a non-refundable digital delivery fee of $3.99 will be charged on each digital item.
$77.99*

How Marketplace Works:

  • This item is offered by an independent seller and not shipped from our warehouse
  • Item details like edition and cover design may differ from our description; see seller's comments before ordering.
  • Sellers much confirm and ship within two business days; otherwise, the order will be cancelled and refunded.
  • Marketplace purchases cannot be returned to eCampus.com. Contact the seller directly for inquiries; if no response within two days, contact customer service.
  • Additional shipping costs apply to Marketplace purchases. Review shipping costs at checkout.

Summary

Written by top researchers Larry Snyder and Calvin Lin, this highly anticipated first edition emphasizes the principles underlying parallel computation, explains the various phenomena, and clarifies why these phenomena represent opportunities or barriers to successful parallel programming.Introduction: Parallelism = Opportunities + Challenges; Introduction: Parallelism = Opportunities + Challenges; Reasoning about Performance; First Steps Towards Parallel Programming; Scalable Algorithmic Techniques; Programming with Threads; Local View Programming Languages; Global View Programming Languages; Assessing Our Knowledge; Future Directions in Parallel Programming; Capstone Project: Designing a Parallel Program.For all readers (particularly software engineers and computer system designers) interested in multi-core architecture and parallel programming.

Author Biography

Lawrence Snyder is Professor of Computer Science and Engineering at the University of Washington in Seattle. He received his PhD from Carnegie Mellon University and has devoted most of his career to parallel computation research, including architecture, algorithms and languages. With Calvin Lin and UW graduate students, he developed the ZPL parallel programming language. He is a fellow of the ACM and IEEE. He is an ardent traveler, enthusiastic theater-goer and occasional skier.

Calvin Lin is an Associate Professor of Computer Sciences at The University of Texas at Austin, where he also serves as Director of the Turing Scholars Honors Program of undergraduate CS majors. He received his PhD from the University of Washington under the supervision of Lawrence Snyder.  His current research interests include compilers and micro-architecture. In his spare time, he is an avid ultimate Frisbee player and coach of UT’s Men’s Ultimate Frisbee team.

Table of Contents

Introduction: Parallelism = Opportunities + Challenges
The Power and Potential of Parallelism Examining Sequential and Parallel Programs
A Paradigm Shift Parallelism
Using Multiple Instruction Streams
The Goals: Scalable Performance and Portability
Summary
Historical
Context
Exercises
Parallel Computers And Their Model Balancing Machine
Specifics with Portability
A Look at Five Parallel Computers
The RAM: An Abstraction of a Sequential Computer
The PRAM: A Parallel Computer Model
The CTA: A Practical Parallel Computer Model Memory Reference
Mechanisms A Closer Look at Communication
Applying the CTA Model
Summary
Historical Perspective
Exercises
Reasoning about Performance
Introduction
Motivation and Some Basic Concepts
Sources of Performance Loss Parallel Structure
Reasoning about Performance
Performance Trade-Offs Measuring
Performance What should we measure?
Summary
Historical Perspective
Exercises
First Steps Towards Parallel
Programming Task and Data Parallelism Peril-L Count 3s
Example Conceptualizing Parallelism Alphabetizing
Example Comparison of Three Solutions
Summary
Historical Perspective
Exercises
Scalable Algorithmic Techniques
The Inevitability of Trees Blocks of Independent
Computation Schwartzrsquo; Algorithm Assigning
Work To Processes Statically Assigning
Work to Processes Dynamically
The Reduce & Scan Abstractions Trees
Summary
Historical Context
Exercises
Programming with Threads POSIX Threads
Thread Creation and Destruction Mutual Exclusion
Synchronization Safety Issues
Performance Issues
Open MP The Count 3s
Example Semantic Limitations on Reduction Thread
Behavior and Interaction Sections
Summary of OpenMP Java Threads
Summary
Historical Perspectives
Exercises
Local View Programming Languages MPI: The Message Passing Interface
Getting Started Safety Issues
Performance Issues
Co-Array Fortran Unified Parallel C Titanium
Summary
Exercises
Global View Programming Languages
The Z-level Programming Language
Basic Concepts of ZPL Life, An Example Design Principles
Manipulating Arrays Of Different Ranks
Reordering Data With Remap Parallel Execution of ZPL Performance Model
Summary NESL
Historical Context
Exercises
Assessing Our Knowledge
Introduction
Evaluating Existing Approaches Lessons for the Future
Summary
Historical Perspectives
Exercises
Future Directions in Parallel Programming
Attached Processors Grid Computing Transactional Memory
Summary
Exercises
Capstone Project: Designing a Parallel Program
Introduction
Motivation Getting Started
Summary
Historical Perspective
Exercises
More Advanced Concepts
Table of Contents provided by Publisher. All Rights Reserved.

An electronic version of this book is available through VitalSource.

This book is viewable on PC, Mac, iPhone, iPad, iPod Touch, and most smartphones.

By purchasing, you will be able to view this book online, as well as download it, for the chosen number of days.

Digital License

You are licensing a digital product for a set duration. Durations are set forth in the product description, with "Lifetime" typically meaning five (5) years of online access and permanent download to a supported device. All licenses are non-transferable.

More details can be found here.

A downloadable version of this book is available through the eCampus Reader or compatible Adobe readers.

Applications are available on iOS, Android, PC, Mac, and Windows Mobile platforms.

Please view the compatibility matrix prior to purchase.