Intel Threading Building Blocks: Outfitting C for Multi-core Processor Parallelism

Category: Technical


<< Buy This Book on Amazon >>

502 views since 2007-10-31, updated at 2008-08-12. Bookmark this: Intel Threading Building Blocks Outfitting C for Multi core Processor Parallelism

Description


Intel Threading Building Blocks: Outfitting C++ for Multi-core Processor Parallelism

Intel Threading Building Blocks: Outfitting C++ for Multi-core Processor Parallelism
By James Reinders

Publisher: O'Reilly Media, Inc.
Number Of Pages: 332
Publication Date: 2007-07-12
Sales Rank: 75087
ISBN / ASIN: 0596514808
EAN: 9780596514808
Binding: Paperback
Manufacturer: O'Reilly Media, Inc.
Studio: O'Reilly Media, Inc.
Average Rating: 3

Book Description:

Multi-core chips from Intel and AMD offer a dramatic boost in speed and responsiveness, and plenty of opportunities for multiprocessing on ordinary desktop computers. But they also present a challenge: More than ever, multithreading is a requirement for good performance. This guide explains how to maximize the benefits of these processors through a portable C++ library that works on Windows, Linux, Macintosh, and Unix systems. With it, you'll learn how to use Intel Threading Building Blocks (TBB) effectively for parallel programming -- without having to be a threading expert.

Written by James Reinders, Chief Evangelist of Intel Software Products, and based on the experience of Intel's developers and customers, this book explains the key tasks in multithreading and how to accomplish them with TBB in a portable and robust manner. With plenty of examples and full reference material, the book lays out common patterns of uses, reveals the gotchas in TBB, and gives important guidelines for choosing among alternatives in order to get the best performance.

You'll learn how Intel Threading Building Blocks:

Enables you to specify tasks instead of threads for better portability, easier programming, more understandable source code, and better performance and scalability in general
Focuses on the goal of parallelizing computationally intensive work to deliver high-level solutions
Is compatible with other threading packages, and doesn't force you to pick one package for your entire program
Emphasizes scalable, data-parallel programming, which allows program performance to increase as you add processors
Relies on generic programming, which enables you to write the best possible algorithms with the fewest constraints
Any C++ programmer who wants to write an application to run on a multi-core system will benefit from this book. TBB is also very approachable for a C programmer or a C++ programmer without much experience with templates. Best of all, you don't need experience with parallel programming or multi-core processors to use this book.

Date: 2007-08-25 Rating: 3
Review:
Potentially useful technology, book could be better

There are many views of how best to implement multi-threading and with multi-core processors now common the topic is becoming ever more relevant. Of course the best implementation method really depends on what you are trying to do. Are you implementing something that waits for a price update message from a derivatives exchange, parses the message, updates cached data, writes a log and forwards the message on to an algorithmic trading engine? If so, you'll probably be attracted to techniques different from someone calculating risk, bond prices etc. There is no one technique that suits every job.

Anyone working with multi-threading (and parallelism in general) keeps an eye on what techniques other people are using to see whether they may be useful. That's why I bought this book (Intel Threading Building Blocks) and TBB certainly looks like it will be of use for some multi-threaded applications that I develop, although not for all.

Starting with the most important question - have I learnt anything from reading this book. Yes, and I've learnt a couple of bits from reading the TBB source code too (downloadable from the web). Now for the detail...

Having read the book, am I now about to start using the Intel Threading Building Blocks library (downloadable from Intel)? The answer is yes, for some applications on some hardware architectures, but not for all of my multi-threaded applications. Importantly in terms of this book though, the first reason I looked at the TBB source code was to answer questions raised when reading the book, and that is my main issue with this book. For a developer who already has extensive multi-threading experience, this book raises quite a few questions that it doesn't answer.

Even some of the things that this book does answer are tucked away in the text a long way into the book. Here are three examples:
(1) The book tells you to create tasks, not explicitly work with threads. Where is the best description of a task? Page 267. It's not even in a glossary, but tucked away in the examples chapter. Somewhere in the first chapter would have been more useful.
(2) Personally, if I am told within the first few pages that TBB is based on the idea of developers implementing their systems as small tasks that are scheduled by the TBB scheduler I am immediately going to ask how that task is handled at a technical level. Ok, we're told quickly that it's written as a functor, and that functors may be executed on different cores, but does that mean that a thread is chosen from a thread pool to execute each functor, that (on Windows) fibers are used, that there is one manager thread running per core (with processor affinity set?) with each manager pulling tasks from its own queue, what are the performance implications of context switching and locking, etc? The author may think that the reader doesn't need this level of detail, but if somebody is going to the trouble of writing multithreaded code to improve performance I would think it very likely that they will want to know what is happening beneath the surface to ensure that they are using the best techniques. Some details of the scheduler are provided much further into the book (for instance we discover that last-in, first-out deques are used), but not enough and far too late.
(3) On page 133 there are two paragraphs discussing when task-based programming is inappropriate, a bit late in my opinion for those people for whom it does turn out to be inappropriate.

I also have issues with some of the things presented as absolute fact in the book. For example "Race conditions are less catastrophic than deadlocks". I disagree. With a deadlock your program stops, you know about it very quickly, you investigate and you sort it out. If it happens, it'll probably only happen once. With a race condition you may not even realise it exists, the application produces subtly incorrect results and hence your functionality goes awry. If that means your algorithmic trading engine decides to buy a million shares instead of doing nothing (or selling) then you are going to lose a lot of money very quickly. Possibly not just once, but day after day until you realise the race condition is there.

Then there are the bits that are just plain confusing. Here are two examples:
(a) We are told on page 271 that Task stealing is "Terrible" and "will disrupt cached data", but are told on page 283 that TBB is "unique because it rests on a few key decisions" including "Use task stealing". Hmmm...
(b) The code comment on page 231, "2 = 1 for SideShow and C". I know what it means, but adding a verb phrase would prevent the moment when the reader wonders just which proof is about to be presented that "2 = 1".

On the plus side, the book does discuss the split/join pattern, pipelines, atomic operations, benefits of working in user space, issues with the standard new operator (and hence libraries that make use of it), caching issues etc. There is also a chapter on general "Keys to Success" which is useful. There are also some reasonable examples towards the end of the book (although some half way through would be better replaced - demonstrating a point is one thing, but demonstrating it with realistic code is better).

Possibly outside the intended scope of the book, it might have been useful to briefly describe grid computing and whether Intel have plans to add a layer above TBB for use across grids instead of just on one machine, or whether Intel's plans for grid computing simply rely on a completely different model.

So to summarise, the TBB library from Intel looks like it could be very useful, this book will certainly get you started using it, but have no doubt that this book could have been better. Buy it if you will be using TBB, but until somebody writes a better book be prepared to read the TBB source code to find the answers to your deeper questions, or simply ask questions on Intel's web-site.

精华文章 下载Rapidshare文件专用利器 06-09 普通文章 Operating System Concepts - 7th Edition 07-19 普通文章 Data Mining: Concepts and Techniques, Second Edition (The Morgan Ka... 06-20 普通文章 Word、Excel和PPT应用教程及技巧资料 06-09 普通文章 The Complete C++ Training Course, Fourth Edition 09-14 普通文章 Compilers: Principles, Techniques, and Tools (2nd Edition) 09-08 普通文章 PowerPoint 2007 Essential Training 04-04 普通文章 Pattern Oriented Software Architecture Volume 1-5 06-28 普通文章 The New Oxford Picture Dictionary: Monolingual English Edition 06-22 普通文章 Schaum's Quick Guide to Writing Great Research Papers 07-04 普通文章 Intel Threading Building Blocks: Outfitting C++ for Multi-core Proc... 10-30 普通文章 JavaScript & DHTML Cookbook, 2nd Edition 10-30 普通文章 Secure Data Management in Decentralized Systems (Advances in Inform... 10-29 普通文章 Geek Squad Manuals 10-29 普通文章 Macworld UK - Expo Issue 2007 10-29 普通文章 Visual Basic 2005 Recipes: A Problem-Solution Approach (Expert's Vo... 10-28 普通文章 Linux: Introduction to Linux VTC Training CD 10-28 普通文章 PC Magazine - November 20, 2007 10-28 普通文章 Maximum PC - October 2007 10-27 普通文章 LightWave 3D Advanced Texturing & Rendering: Project Viper 10-27

互联网搜索结果,渡岸不对其真实性/合法性负责,若有任何不妥请联系删除此文。

http://mihd.net/wdl8hx
http://rapidshare.com/files/65910523/OReilly_.Intel.Threading.Building.Blocks._2007_.BBL._0596514808_.pdf.7z
http://rapidshare.com/files/65902333/0596514808.rar



Download this book from Usenet
DOWNLOAD Free register and download UseNext downloader, then you can free download ebooks from UseNet.

Free Download "Intel Threading Building Blocks: Outfitting C for Multi-core Processor Parallelism" from Usenet!

Buy this book from amazon


Disclaimer:
Contents of this page are indexed from this page for search purpose only. All actions are under your responsability. Email us to report illegal contents or external links and we'll remove them immediately.

Search More...

Intel Threading Building Blocks: Outfitting C for Multi-core Processor Parallelism

Search free ebooks in ebookee.com!


Links

Free Trade Magazine Subscriptions & Technical Document Downloads

Search and Buy
<< Search and Buy This Book on Amazon >>

Download this book from Usenet
DOWNLOAD How to download:
Free register to download UseNext downloader and install, then search book title and start downloading. UseNext is clean and can be unstalled totally. Enjoy!

Free Download "Intel Threading Building Blocks: Outfitting C for Multi-core Processor Parallelism" from Usenet!

Download Link 2


No download links here
Please check the description for download links if any or do a search to find alternative books.

Can't Download?
Please search mirrors if you can't find download links for "Intel Threading Building Blocks: Outfitting C for Multi-core Processor Parallelism" in "Description" and someone else may update the links. Check the comments when back to find any updates.

Search Mirrors
Maybe some mirror pages will be helpful, search this book at top of this page or click here to find more info.


Related Books


Books related to "Intel Threading Building Blocks: Outfitting C for Multi-core Processor Parallelism":

  1. Ebooks list page : 1366
  2. Intel Threading Building Blocks: Outfitting C for Multi-core Processor Parallelism
  3. Intel Threading Building Blocks: Outfitting C for Multi-core Processor Parallelism
  4. Intel Threading Building Blocks: Outfitting C for Multi-core Processor Parallelism
  5. [share_ebook] Intel Threading Building Blocks: Outfitting C for Multi-core Processor Parallelism
  6. [request_ebook] Multi-core Programming: Increasing Performance Through Software Multi-threading
  7. Software Development for Embedded Multi-core Systems: A Practical Guide Using Embedded Intel Architecture
  8. [share_ebook] Software Development for Embedded Multi-core Systems: A Practical Guide Using Embedded Intel Architecture
  9. [CPU - ENG] Intel Pentium III Processor Based on 0.13 Micron Pro
  10. [CPU - ENG] Intel Pentium III Processor Based on 0.13 Micron Pro
  11. Retargetable Processor System Integration into Multi-Processor System-on-Chip Platforms
  12. Designing an SMB Multi-Service Security Gateway Off-the-Shelf Building Blocks Accelerate Security Gateway Development, Free Bell Microproducts Inc. White Paper
  13. Designing an SMB Multi-Service Security Gateway Off-the-Shelf Building Blocks Accelerate Security Gateway Development, Free Bell Microproducts Inc. White Paper
  14. Designing an SMB Multi-Service Security Gateway Off-the-Shelf Building Blocks Accelerate Security Gateway Development, Free Bell Microproducts Inc. White Paper
  15. Designing an SMB Multi-Service Security Gateway Off-the-Shelf Building Blocks Accelerate Security Gateway Development, Free Bell Microproducts Inc. White Paper
  16. Designing an SMB Multi-Service Security Gateway Off-the-Shelf Building Blocks Accelerate Security Gateway Development, Free Bell Microproducts Inc. White Paper

Comments


No comments for "Intel Threading Building Blocks: Outfitting C for Multi-core Processor Parallelism".


    Add Your Comments

    1. Download links and password may be in the description section, read description carefully!
    2. Do a search to find mirrors if no download links or dead links.

    required

    required, hidden

    need login

    required

    Back to Top