Principles of Parallel Programming / Edition 1

Hardcover (Print)
Buy New
Buy New from BN.com
$143.04
Used and New from Other Sellers
Used and New from Other Sellers
from $91.41
Usually ships in 1-2 business days
(Save 41%)
Other sellers (Hardcover)
  • All (14) from $91.41   
  • New (10) from $91.41   
  • Used (4) from $129.48   

Overview

With the rise of multi-core architecture, parallel programming is an increasingly important topic for software engineers and computer system designers. Principles of Parallel Programming , written by well-known researchers Calvin Lin and Lawrence Snyder, focuses on the underlying principles of parallel computation, explains the various phenomena, and clarifies why these phenomena represent opportunities or barriers to successful parallel programming.

This book is ideal for an upper-level undergraduate or master's level course, or for a professional programmer seeking an introduction to parallelism. The text supplies valuable, enduring information that will outlive the current hardware and software.

KEY FEATURES

  • A principles-first approach emphasizes the fundamental concepts of parallel computation rather than offering a "how-to" guide for current commercial products.
  • Popular programming languages are discussed in the context of the principles and tools used for programming contemporary parallel machines.
  • Note boxes provide interesting extensions of the information presented.
  • Definition boxes define key words and concepts.
  • Chapter exercises offer opportunities to implement the concepts discussed.
  • Future Directions in Parallel Programming (Chapter 10) focuses on current developments that are likely to impact the field.
  • Writing Parallel Programs (Chapter 11) provides hands-on practice for readers to create a substantial parallel program.

www.pearsonhighered.com/lin

Read More Show Less

Editorial Reviews

From the Publisher

"...the first basic book on the subject that I've ever seen that seems to have the pulse on the true issues of parallelism that are relevant for students."Alan Edelman, MIT

"Principles of Parallel Programming is a wonderful book and I plan to use it in our new parallel programming course..."Peiyi Tang, University of Arkansas, Little Rock

"I like [Principles of Parallel Programming] very much for a few specific reasons: it's concise, covers the most relevant topics but does not take thousand pages to do it, it is hands on and it covers...recent developments with multi-core and GPGPU."Edin Hodzic, Santa Clara University

Read More Show Less

Product Details

  • ISBN-13: 9780321487902
  • Publisher: Addison-Wesley
  • Publication date: 3/11/2008
  • Series: Alternative eText Formats Series
  • Edition description: New Edition
  • Edition number: 1
  • Pages: 352
  • Product dimensions: 7.50 (w) x 9.20 (h) x 0.90 (d)

Meet the Author

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.

Read More Show Less

Table of Contents

Chapter 1 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

Chapter 2 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

Chapter 3 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

Chapter 4 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

Chapter 5 Scalable Algorithmic Techniques
The Inevitability of Trees
Blocks of Independent Computation
Schwartz’ Algorithm
Assigning Work To Processes Statically
Assigning Work to Processes Dynamically
The Reduce & Scan Abstractions
Trees
Summary
Historical Context
Exercises

Chapter 6 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

Chapter 7 Local View Programming Languages
MPI: The Message Passing Interface
Getting Started
Safety Issues
Performance Issues
Co-Array Fortran
Unified Parallel C
Titanium
Summary
Exercises

Chapter 8 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

Chapter 9 Assessing Our Knowledge
Introduction
Evaluating Existing Approaches
Lessons for the Future
Summary
Historical Perspectives
Exercises

Chapter 10 Future Directions in Parallel Programming
Attached Processors
Grid Computing
Transactional Memory
Summary
Exercises

Chapter 11 Capstone Project: Designing a Parallel Program
Introduction
Motivation
Getting Started
Summary
Historical Perspective
Exercises

Appendix 1 More Advanced Concepts

Read More Show Less

Customer Reviews

Average Rating 4
( 1 )
Rating Distribution

5 Star

(0)

4 Star

(1)

3 Star

(0)

2 Star

(0)

1 Star

(0)

Your Rating:

Your Name: Create a Pen Name or

Barnes & Noble.com Review Rules

Our reader reviews allow you to share your comments on titles you liked, or didn't, with others. By submitting an online review, you are representing to Barnes & Noble.com that all information contained in your review is original and accurate in all respects, and that the submission of such content by you and the posting of such content by Barnes & Noble.com does not and will not violate the rights of any third party. Please follow the rules below to help ensure that your review can be posted.

Reviews by Our Customers Under the Age of 13

We highly value and respect everyone's opinion concerning the titles we offer. However, we cannot allow persons under the age of 13 to have accounts at BN.com or to post customer reviews. Please see our Terms of Use for more details.

What to exclude from your review:

Please do not write about reviews, commentary, or information posted on the product page. If you see any errors in the information on the product page, please send us an email.

Reviews should not contain any of the following:

  • - HTML tags, profanity, obscenities, vulgarities, or comments that defame anyone
  • - Time-sensitive information such as tour dates, signings, lectures, etc.
  • - Single-word reviews. Other people will read your review to discover why you liked or didn't like the title. Be descriptive.
  • - Comments focusing on the author or that may ruin the ending for others
  • - Phone numbers, addresses, URLs
  • - Pricing and availability information or alternative ordering information
  • - Advertisements or commercial solicitation

Reminder:

  • - By submitting a review, you grant to Barnes & Noble.com and its sublicensees the royalty-free, perpetual, irrevocable right and license to use the review in accordance with the Barnes & Noble.com Terms of Use.
  • - Barnes & Noble.com reserves the right not to post any review -- particularly those that do not follow the terms and conditions of these Rules. Barnes & Noble.com also reserves the right to remove any review at any time without notice.
  • - See Terms of Use for other conditions and disclaimers.
Search for Products You'd Like to Recommend

Recommend other products that relate to your review. Just search for them below and share!

Create a Pen Name

Your Pen Name is your unique identity on BN.com. It will appear on the reviews you write and other website activities. Your Pen Name cannot be edited, changed or deleted once submitted.

 
Your Pen Name can be any combination of alphanumeric characters (plus - and _), and must be at least two characters long.

Continue Anonymously
Sort by: Showing 1 Customer Reviews
  • Posted February 10, 2009

    more from this reviewer

    abstracts essential ideas

    Years ago I briefly worked on a hypercube, and when I got this book, I wondered how it had fared. Alas, the hypercube, at least under this name, rated no mention. Though there is a passing reference to a binary 3 cube which is a 3 dimensional hypercube.<BR/><BR/>The authors explain the current state of multiprocessor architectures. The few remaining computer CPU makers have efforts in this field. Intel, AMD, Sun and IBM. The book describes qualitatively the salient aspects of each. One nice thing about the discussion is that it focuses on this, without drowning you in unnecessary hardware details. This turns out to be a key theme of the book. It abstracts out essential hardware properties, so that you can appreciate these and apply the book's ideas without being tied to any given chip.<BR/><BR/>The book also describes an important type of multiprocessor. Cluster machines, where each node is typically some off the shelf CPU, buffed up with a lot of local memory. The key differences between clusters are often related to how the nodes are hooked to each other, by some type of bus or crossbar. Affordability is an important property of clusters; thus the maximal use of commodity hardware. (The hypercube that I mentioned earlier would be a cluster.)<BR/><BR/>For a programmer, there is one overriding idea that you should get from the book. For optimal performance, minimise the internodal communication, compared to the use of a node's cache. The access time of the former can be 2-5 orders of magnitude slower. Details vary with the given architectures, of course. But typically nothing else comes close, in terms of effects on your throughput.

    Was this review helpful? Yes  No   Report this review
Sort by: Showing 1 Customer Reviews

If you find inappropriate content, please report it to Barnes & Noble
Why is this product inappropriate?
Comments (optional)