Pro Tbb: C++ Parallel Programming with Threading Building Blocks (Paperback)

Asenjo, Rafael, Reinders, James, Voss, Michael

  • 出版商: Apress
  • 出版日期: 2019-07-10
  • 售價: $1,700
  • 貴賓價: 9.5$1,615
  • 語言: 英文
  • 頁數: 972
  • 裝訂: Quality Paper - also called trade paper
  • ISBN: 1484243978
  • ISBN-13: 9781484243978
  • 相關分類: C++ 程式語言
  • 立即出貨 (庫存=1)

買這商品的人也買了...

商品描述

This open access book is a modern guide for all C++ programmers to learn Intel Threading Building Blocks (TBB). Written by TBB and parallel programming experts, this book reflects their collective decades of experience in developing and teaching parallel programming with TBB, offering their insights in an approachable manner. Throughout the book the authors present numerous examples and best practices to help you become an effective TBB programmer and leverage the power of parallel systems.

Pro Intel Threading Building Blocks starts with the basics, explaining parallel algorithms and C++'s built-in standard template library for parallelism. You'll learn the key concepts of managing memory, working with data structures and how to handle typical issues with synchronization. Later chapters apply these ideas to complex systems to explain performance tradeoffs, mapping common parallel patterns, controlling threads and overhead, and extending TBB to program heterogeneous systems or system-on-chips.

 

What You'll Learn

 

 

  • Use Threading Building Blocks to produce code that is portable, simple, scalable, and more understandable
  • Review best practices for parallelizing computationally intensive tasks in your applications
  • Integrate TBB with other threading packages
  • Create scalable, high performance data-parallel programs
  • Work with generic programming to write efficient algorithms

 

Who This Book Is For

C++ programmers learning to run applications on multicore systems, as well as C or C++ programmers without much experience with templates. No previous experience with parallel programming or multicore processors is required.

商品描述(中文翻譯)

這本開放存取的書籍是一本現代指南,適用於所有C++程式設計師學習Intel Threading Building Blocks (TBB)。由TBB和平行程式設計專家撰寫,這本書反映了他們在開發和教授TBB平行程式設計方面的數十年經驗,以易於理解的方式提供他們的見解。在整本書中,作者提供了許多範例和最佳實踐,以幫助您成為一個有效的TBB程式設計師,並充分利用平行系統的威力。

《Pro Intel Threading Building Blocks》從基礎知識開始,解釋了平行演算法和C++內建的標準模板庫以進行平行處理。您將學習到管理記憶體、處理資料結構以及如何處理常見的同步問題的關鍵概念。後面的章節將這些概念應用於複雜系統,以解釋性能折衷、映射常見的平行模式、控制執行緒和開銷,以及擴展TBB以在異質系統或系統單晶片上進行程式設計。

您將學到什麼

- 使用Threading Building Blocks來產生可攜、簡單、可擴展且更易理解的程式碼
- 檢視在應用程式中將計算密集任務平行化的最佳實踐
- 將TBB與其他執行緒套件整合
- 創建可擴展且高效能的資料平行程式
- 使用泛型程式設計撰寫高效的演算法

適合閱讀對象

- 學習在多核系統上運行應用程式的C++程式設計師,以及沒有太多模板經驗的C或C++程式設計師。不需要先前的平行程式設計或多核處理器經驗。

作者簡介

James Reinders served as a senior engineer with Intel Corporation starting in 1989, where he contributed to projects including the world's first TeraFLOP supercomputer (ASCI Red), as well as compilers and architecture work for a number of Intel processors and parallel systems. James has been a driver behind the development of Intel as a major provider of software development products, and serves as their chief software evangelist. James has published numerous articles, contributed to several books and is widely interviewed on parallelism. James has managed software development groups, customer service and consulting teams, business development and marketing teams. James is sought after to keynote on parallel programming, and has authored or edited several books on parallel programming including Structured Parallel Programming (2012) and High Performance Parallelism Pearls, Vols 1 and 2 (2014, 2015).
Mike Voss is with the Developer Products Division at Intel and was the original architect of the Intel(R) Threading Building Blocks (Intel(R) TBB) flow graph API, a C++ API for expressing dependency, streaming, and data flow applications. He has co-authored over 40 published papers and articles on topics related to parallel programming, and frequently consults with customers across a wide range of domains to help them effectively use the threading libraries provided by Intel. He is currently championing the use of extensions to Intel TBB that enable software developers to coordinate the use of heterogeneous compute resources such as CPUs, integrated GPUs, FPGAs, and other domain-specific accelerators, and is one of the lead developers of Flow Graph Analyzer, a graphical tool for analyzing data flow applications targeted at both homogeneous and heterogeneous platforms.

 

 

 

From 1994 to 2001, Dr. Rafael Asenjo was an Assistant Professor in the Computer Architecture Department at University of Malaga, and has been an Associate Professor since 2001. He was Visiting Scholar in the University of Illinois at Urbana-Champaign (UIUC) in 1996 and 1997, and Visiting Research Associate in the same University in 1998. He also was Research Visitor at IBM T.J. Watson in 2008 and at Cray Inc. in 2011. He collaborated on the IBM XL-UPC compiler in 2008 and has contributed to the Cray's Chapel runtime development since 2011. He has served as General Chair for ACM PPoPP'16 and as an Organization Committee member as well as a Program Committee member for several High Performance Computing related conferences among others PPoPP, SC, PACT, IPDPS, HPCA, EuroPar and SBAC-PAD. His research interests are in parallel programming models and tools for heterogeneous architectures.

 

作者簡介(中文翻譯)

James Reinders自1989年起在英特爾公司擔任高級工程師,他參與了許多項目,包括世界上第一台TeraFLOP超級計算機(ASCI Red)的開發,以及為多個英特爾處理器和並行系統進行的編譯器和架構工作。James一直致力於將英特爾打造成一家重要的軟件開發產品提供商,並擔任其首席軟件傳道人。James發表了許多文章,為幾本書作出了貢獻,並在並行性方面廣受採訪。James曾管理軟件開發團隊、客戶服務和咨詢團隊、業務發展和市場營銷團隊。James是並行編程主題的主題演講嘉賓,並撰寫或編輯了幾本關於並行編程的書籍,包括《結構化並行編程》(2012年)和《高性能並行性寶石》第1卷和第2卷(2014年,2015年)。

Mike Voss在英特爾的開發產品部門工作,是Intel(R) Threading Building Blocks (Intel(R) TBB)流程圖API的原始架構師,該API是一個用於表達依賴性、流式和數據流應用程序的C++ API。他共同撰寫了40多篇關於並行編程的發表論文和文章,並經常與各個領域的客戶進行咨詢,幫助他們有效地使用英特爾提供的線程庫。他目前正在推動使用擴展到Intel TBB的技術,使軟件開發人員能夠協調使用異構計算資源,如CPU、集成GPU、FPGA和其他特定領域的加速器,並且是Flow Graph Analyzer的主要開發人員之一,該工具是一個用於分析針對同質和異質平台的數據流應用程序的圖形工具。

從1994年到2001年,Rafael Asenjo博士在馬拉加大學的計算機架構系任助理教授,自2001年起擔任副教授。他在1996年和1997年訪問了伊利諾伊大學香檳分校(UIUC),並在1998年在該大學擔任訪問研究員。他還在2008年訪問了IBM T.J. Watson和2011年訪問了Cray Inc.。他在2008年參與了IBM XL-UPC編譯器的開發,並自2011年以來一直為Cray的Chapel運行時開發做出貢獻。他曾擔任ACM PPoPP'16的總主席,並擔任多個高性能計算相關會議的組織委員會成員和程序委員會成員,包括PPoPP、SC、PACT、IPDPS、HPCA、EuroPar和SBAC-PAD等。他的研究興趣在於異構架構的並行編程模型和工具。