《並行開發藝術》是2010年1月1日東南大學出版社出版的圖書
如果你想利用並發程式設計充分發揮多核心處理器的性能,《並行開發藝術(影印版)》就為你提供了所需要的實踐知識和親身體驗。《並行開發藝術》是一份難得的材料,專注於多核心處理器的共享記憶體模型,而不只是理論模型或分散式記憶體架構。《並行開發藝術(影印版)》提供了詳盡的解釋和可用的示例,幫助你將算法從串列代碼轉化為並行代碼,此外還包括建議和分析,避免程式設計師的典型錯誤。
作者為Intel資深工程師,擁有超過20年的並行和並發編程經驗,《並行開發藝術(影印版)》將會幫助你:
· 探索共享記憶體與分散式記憶體編程間的區別
· 學習設計多執行緒程式的指導方針,包括測試和調整
· 研究如何善用不同的執行緒庫,包括Windows執行緒、POSIX執行緒、OpenMP和Intel Threading Building Blocks
· 研究如何實現排序、查找、圖形和其他實用計算的並行算法
基本介紹
- 書名:並行開發藝術
- ISBN:9787564119294
- 頁數:285頁
- 出版社:東南大學出 版社
- 出版時間:2010年1月1日
- 裝幀:平裝
- 開本:16
- 正文語種::英語
內容簡介,編輯推薦,媒體推薦,作者簡介,目錄,
內容簡介
《並行開發藝術》向你展示如何擴展算法,以從新型的多核處理器中獲益。對於開發並行算法和並發編程來說,《並行開發藝術(影印版)》不可或缺。
編輯推薦
《並行開發藝術(影印版)》是由東南大學出版社出版的。
媒體推薦
“這本書緊扣題目,令人賞心悅目。藝術無法傳授,但追隨大師的腳印便可覓得蹤跡。作者在超級計算機公司工作30餘年,而後又在學術界浸淫10年,我可以毫無疑問地說,本書實至名歸。”
──Tom Murphy,Contra Costa學院,計算機科學程式委員會主席
“終於,一本專注於並發的書籍出現了。它包含諸多現實世界的非凡算法,利用並行編程技術對其進行分析,提升它們的性能。”
──Mike Pearce,Intel Software Network,並行計算體系主管
作者簡介
Clay Breshears博士,是Intel公司的課程架構師,專攻多核心及多執行緒程式設計與培訓。
目錄
PREFACE
1 WANT TO GO FASTER? RAISE YOUR HANDS IF YOU WANT TO GO FASTER!
Some Questions You May Have
Four Steps of a Threading Methodology
Background of Parallel Algorithms
Shared-Memory Programming Versus Distributed-Memory Programming
This Book’s Approach to Concurrent Programming
2 CONCURRENT OR NOT CONCURRENT?
Design Models for Concurrent Algorithms
What’s Not Parallel
3 PROVING CORRECTNESS AND MEASURING PERFORMANCE
Verification of Parallel Algorithms
Example: The Critical Section Problem
Performance Metrics (How Am I Doing?)
Review of the Evolution for Supporting Parallelism in Hardware
4 EIGHT SIMPLE RULES FOR DESIGNING MULTITHREADED APPLICATIONS
Rule 1: Identify Truly Independent Computations
Rule 2: Implement Concurrency at the Highest Level Possible
Rule 3: Plan Early for Scalability to Take Advantage of Increasing Numbers of Cores
Rule 4: Make Use of Thread-Safe Libraries Wherever Possible
Rule 5: Use the Right Threading Model
Rule 6: Never Assume a Particular Order of Execution
Rule 7: Use Thread-Local Storage Whenever Possible or Associate Locks to Specific Data
Rule 8: Dare to Change the Algorithm for a Better Chance of Concurrency
Summary
5 THREADING LIBRARIES
Implicit Threading
Explicit Threading
What Else Is Out There?
Domain-Specific Libraries
6 PARALLEL SUM AND PREFIX SCAN
Parallel Sum
Prefix Scan
Selection
A Final Thought
7 MAPREDUCE
Map As a Concurrent Operation
Reduce As a Concurrent Operation
Applying MapReduce
MapReduce As Generic Concurrency
8 SORTING
Bubblesort
Odd-Even Transposition Sort
Shellsort
Quicksort
Radix Sort
9 SEARCHING
Unsorted Sequence
Binary Search
10 GRAPH ALGORITHMS
Depth-First Search
All-Pairs Shortest Path
Minimum Spanning Tree
11 THREADING TOOLS
Debuggers
Performance Tools
Anything Else Out There?
Go Forth and Conquer
GLOSSARY
PHOTO CREDITS
INDEX