內容簡介

多核體系結構的出現使得並行程序設計技術對軟件工程師和計算機系統設計師變得日益重要。本書著重論述並行計算的基本原理,解釋各種現象,並分析為何這些現象是成功進行並行程序設計的機遇或阻礙。

  本書是高等院校計算機專業高年級本科生或低年級研究生的理想教科書,同時也是專業程序員從事並行程序設計的理想入門書。

  本書內容

  以原理第一的原則重點闡述並行計算的基本原理,而不是指導讀者“如何”去管理當前商品化的並行計算機。

  以原理為背景討論流行的程序設計語言並論述當代並行計算機編程所使用的工具。

  使用注釋框對書中所提及的內容進行饒有興趣的擴展。

  使用定義框對書中關鍵詞和概念進行定義。

  每章附有習題,便于讀者掌握所論述的概念。

  第10章︰著重論述可能影響該研究領域未來的當前進展。

  第11章︰為讀者構造實際的並行程序提供第一手的實踐經驗。
 

目錄

PART 1 Foundations
Chapter 1 Introduction
The Power and Potential of Parallelism
Parallelism,a Familiar Concept
Parallelism in Computer Programs
Multi-Core Computers,an Opportunity
Even More Opportunities to Use Parallel Hardware
Parallel Computing versus Distributed Computing
System Level Parallelism
Convenience of Parallel Abstractions
Examining Sequential and Parallel Programs
Parallelizing Compliers
A Paradigm Shift
Parallel Prefix Sum
Parallelism Using Multiple Instruction Streams
The Concept of a Thread
A Multithreaded Solution to Counting 3s
The Goals:Scalability and Performance Portability
Scalability
Performance Portability
Principles First
Chapter Summary
Historical Perspective
Exercises
Chapter 2 Understanding Parallel Computers
Balancing Machine Specifics With Portability
A Look at Six Parallel Computers
Chip Multiprocessors
Symmetric Multiprocessor Architectures
Heterogeneous Chip Designs Clusters
Supercomputers
Observations from Our Six Parallel Computers
An Abstraction of Sequential Computer
Applying the RAM Model
Evaluating the RAM Model
The PRAM:A Parallel Computer Model
The CTA:A Practical ParallelComputer Model
Computer Model
The CTA Model
Communication Latency
Properties of CTA
Memory Reference Mechanisms
Shared Memory
One-Sided Communication
Message Passing
Memory Consistency Models
Programming Models
A Closer Look at Communication
Applying the CTA model
Chapter Summary
Historical Perspective
Exercises
Chapter 3 Reasoning about Performance
Motivation and Basic Concepts
Parallelism versus Performance
Threads and Processes
Latency and Throughput
Sources of Performance Loss
Overhead
Non-Parallelizable Code
Contention
Idle Time
Parallel Structure
Dependences
Dependences Limit Parallelism
Granularity
Locality
Performance Trade-Offs
Communication versus Computation
Memory versus Parallelism
Overhead versus Parallelism
Measuring Performance
Execution Time
Speedup
Superlinear Speedup
Efficiency
Concerns with Speedup
Scaled Speedup versus Fixed=Size Speedup
Scalable Performance
Scalable Performance Is Difficult to Achieve
Implications for Hardware
Implications for Software
Scaling the Problem Size
Chapter Summary
Historical Perspective
Exercises
PART 2 Parallel Abstractions
Chapter 4 First Steps Toward Parallel Programming
First Steps Toward Parallel Programming
Data and Task Parallelism
Definitions
Illustrating Data and Task Parallelism
The Peril-L Notation
Extending C
Parallel Threads
Synchronization and Coordination
Memory Model
Synchronized Memory
Reduce and Scan
The Reduce Abstraction
Count 3s Example
Formulating Parallelism
Fixed Parallelism
Unlimited Parallelism
Scalable Parallelism
Alphabetizing Example
Unlimited Parallelism
Fixed Parallelism
Scalable Parallelism
Comparing the Three Solutions
Chapter Summary
Historical Perspective
Exercises
Chapter 5 Scalable Algorithmic Techniques
Scalable Algorithmic Techniques
Blocks of lndependent Computation
Schwartz’Algorithm
The Reduce and Scan Abstractions
Example of Generalized Reduces and Scans
The Basic Structure
Structure for Generalized Reduce
Example of Components of a Generalized Scan
Applying the Generalized Scan
Generalized Vector Operations
Assigning Work to Processes Statically
Block Allocations
Overlap Regions
Cyclic and Block Cyclic Allocations
Irregular Allocations
Assigning Work to Processes Dynamically
Work Queues
Variations of Work Queues
Case Study:Concurrent Memory Allocation
Trees
Allocation by Sub-Tree
Dynamic Allocations
Chapter Summary
Historical Perspective
Exercises
PART 3 Parallel Programming Languages
Chapter 6 Programming With Threads
Chapter 7 MPL and Other Local View Languages
Chapter 8 ZPL and Other Global View Languages
Chapter 9 Assessing the State of the Art
RART 4 Looking Forward
Chapter 10 Future Directions In Parallel Programming
Chapter 11 Writing Parallel Programs
Glossary
References
Index
網路書店 類別 折扣 價格
  1. 新書
    87
    $256