Bestellen bei Buecher.de! Preis: 27,95 €
Bestellen bei Amazon.de! Neu ab 19,06 €, gebraucht ab 8,73 €.
Neue Bücher bestellen bei: Buch.de.de, Buch24.de, Bol.de, Libri.de, Thalia.de
Gebrauchte und neue Bücher bestellen bei: AbeBooks.de, Booklooker.de
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.
Good overview, but some disappointmentsThis book about Intel Threading Building Blocks (TBB)
disappoints me for several reasons.
First there is no sourcecode on the o'reilly website. That means you
have to write off all examples by yourself. :(
Another problem is that there
are no benchmarks to demonstrate how much speed you gain by
using this framework instead working without TBB.
Just explaining Amdahl's Law is not enough.
Maybe a quick introduction how to use profiler to
optimize your code using TBB would be nice for the "second edition".
Especially if you only want to deal with a few "bottlenecks" in
your application.
Instead there are some parts in the book like "Quick Introduction to Lambda Functions" which aren't very helpful, because much too short. Only one (!) page is not enough, even for a "quick introduction". Even if this book is for advanced programmers, a few links to further reading would help.
Another example is "Mixing with Other Threading Packages" (OpenMP).
Really interesting theme, but only scratched by 2 pages.
Or chapter 8: "timing, computing wall clock times" to compute elapsed time.
Otherwise this book gives you a really good overview of the TBB framework
like concurrent containers, scalable memory allocation and of course
mutexes and task scheduling.
There are many nice examples which show you how to implement classic
examples like "quicksort" or "game of life" using TBB.
Maybe i expected too much from the book.
But no sourcecode on the o'reilly website is really annoying.
Zu viel Evangelisierung, zuwenig Technische DetailsMoore's Law garantierte in der Vergangenheit, dass die Prozessoren in einem atemberaubenden Tempo schneller wurden. Eine gute Entwicklungsmethode war, Tee trinken zu gehen und auf die nächste Prozessorgeneration zu warten. Diese Zeit des "Free lunchs" ist vorbei, die Prozessoren sind an einem Sättigungspunkt angelangt. Nachdem das Mooresche Gesetz weiter gilt, werden die "überzähligen" Transistoren für die Implementierung mehrerer Prozessor-Kerne in einem Chip verwendet. Damit haben die Intel-Ingenieure den Ball auf die Software-Seite geschlagen. Wenn die Software diese Kerne nicht ausnützt, läuft das Programm auf einem Quatro-Kern um keinen Deut schneller.
James Reinders wird am Buchrücken als "Chief Evangelist of Intel Software Products" bezeichnet. Er will die Programmierer zum oben beschriebenen Sachverhalt bekehren. Das Buch leidet an einer starken Überdosis an Predigt. Er hätte den Aufwand und die Buchseiten besser in eine detaillierte Beschreibung der technischen Details der TBB-Library verwenden sollen. Das Buch geht von einer guten Kenntnis der Standard Template Library aus. TBB ist vereinfacht gesprochen STL in Zeiten der Multicores. Reinders speist diesbezüglich den Leser mit "Read the .... STL Documentation" ab. Es fehlen auch Angaben über den paralleln Speedup. Nach meinen Erfahrungen ist die STL wesentlich langsamer als eine handoptimierte Version derselben Datenstruktur. Falls TBB denselben Overhead hat, dienen die Multicores nur dazu, diesen Overhead auszugleichen. "Software gets slower faster than hardware gets faster" (N.Wirth). Auf derartige Details lässt sich Reinders aber erst gar nicht ein.
Erstaunt haben mich die dem Buch vorangestellten "Praise for Intel TBB". Kapazunder der Informatik wie z.B. Charles Leiserson from M.I.T. loben in höchsten Worten die TBB und auch dieses sehr mittelmässige Buch. Das errinnert mich an die Hofdichter vergangener Zeiten, die einleitende Lobessonnette für die diletantischen Gedichte ihrer fürstlichen Förderer verfasst haben. Cervantes hat sich im Don Quichote mit beissender Ironie über diese Lobhudler lustig gemacht. Es ist ein Trauerspiel, dass sich führende Wissenschaftler wieder auf die Stufe von Hofdichtern der Konzerne degradieren lassen.