- Gebundene Ausgabe: 355 Seiten
- Verlag: Addison Wesley; Auflage: 05001 (23. September 2004)
- Sprache: Englisch
- ISBN-10: 0321228111
- ISBN-13: 978-0321228116
- Größe und/oder Gewicht: 18,6 x 2,5 x 24,3 cm
- Durchschnittliche Kundenbewertung: 4 Kundenrezensionen
- Amazon Bestseller-Rang: Nr. 147.523 in Fremdsprachige Bücher (Siehe Top 100 in Fremdsprachige Bücher)
- Komplettes Inhaltsverzeichnis ansehen
Patterns for Parallel Programming (Software Patterns Series) (Englisch) Gebundenes Buch – 23. September 2004
Kunden, die diesen Artikel angesehen haben, haben auch angesehen
Welche anderen Artikel kaufen Kunden, nachdem sie diesen Artikel angesehen haben?
Es wird kein Kindle Gerät benötigt. Laden Sie eine der kostenlosen Kindle Apps herunter und beginnen Sie, Kindle-Bücher auf Ihrem Smartphone, Tablet und Computer zu lesen.
Geben Sie Ihre Mobiltelefonnummer ein, um die kostenfreie App zu beziehen.
Wenn Sie dieses Produkt verkaufen, möchten Sie über Seller Support Updates vorschlagen?
The Parallel Programming Guide for Every Software Developer From grids and clusters to next-generation game consoles, parallel computing is going mainstream. Innovations such as Hyper-Threading Technology, HyperTransport Technology, and multicore microprocessors from IBM, Intel, and Sun are accelerating the movement's growth. Only one thing is missing: programmers with the skills to meet the soaring demand for parallel software. That's where Patterns for Parallel Programming comes in. It's the first parallel programming guide written specifically to serve working software developers, not just computer scientists. The authors introduce a complete, highly accessible pattern language that will help any experienced developer "think parallel"-and start writing effective parallel code almost immediately. Instead of formal theory, they deliver proven solutions to the challenges faced by parallel programmers, and pragmatic guidance for using today's parallel APIs in the real world.Coverage includes: *Understanding the parallel computing landscape and the challenges faced by parallel developers*Finding the concurrency in a software design problem and decomposing it into concurrent tasks*Managing the use of data across tasks*Creating an algorithm structure that effectively exploits the concurrency you've identified*Connecting your algorithmic structures to the APIs needed to implement them*Specific software constructs for implementing parallel programs*Working with today's leading parallel programming environments: OpenMP, MPI, and Java Patterns have helped thousands of programmers master object-oriented development and other complex programming technologies.With this book, you will learn that they're the best way to master parallel programming too. 0321228111B08232004
Über den Autor und weitere Mitwirkende
Timothy G. Mattson is Intel's industry manager for life sciences. His research focuses on technologies that simplify parallel computing for general programmers, with an emphasis on computational biology. He holds a Ph.D. in chemistry from the University of California, Santa Cruz.
Beverly A. Sanders is associate professor at the Department of Computer and Information Science and Engineering, University of Florida, Gainesville. Her research focuses on techniques to help programmers construct high-quality, correct programs, including formal methods, component systems, and design patterns. She holds a Ph.D. in applied mathematics from Harvard University.
Berna L. Massingill is assistant professor in the Department of Computer Science at Trinity University, San Antonio, Texas. Her research interests include parallel and distributed computing, design patterns, and formal methods. She holds a Ph.D. in computer science from the California Institute of Technology.
0321228111AB08232004 Alle Produktbeschreibungen
Derzeit tritt ein Problem beim Filtern der Rezensionen auf. Bitte versuchen Sie es später noch einmal.
It provides a nice introduction about the topic of parallel programming and convinces with great content about pattern!
Introduced patterns are very good explained and there are shown some alternative approches and views of the pattern. Practical examples also given into the book. But I really love the theoretical part. Is is written so understandable and exciting to read :-). No time for boring! Really nice.
If you ask me, buy that book, even if there exist free sources about pattern in the field of the parallel programming or the book is also available in the internet for free somewhere... this book is a must have.
Many thanks to the authors if you read this!
Ausgangspunkt ist ein sequentielles Programm, das in vier Schritten in ein Paralleles umgeformt wird. Als Plattformen werden OpenMP, MPI und Java 2 1.5 benutzt. Jede Platform wird in einem eigenen Kapitel im Anhang kurz vorgestellt. Dass das Buch schon ein wenig älter ist, ist nicht so schlimm.
Die Autoren haben eine praktische Sammlung von Patterns zusammengestellt. Es tauchen auch evtl. schon bekannte Patterns, wie Master/Worker oder Fork/Join auf. Aufgrund des Umfangs gibt es aber höchstwahrscheinlich auch für fortgeschrittene parallele Programmierer viel Neues zu entdecken.
Das Buch hat allerdings ein Problem: Es ist nicht einfach, es von Anfang bis Ende durchzulesen. Dieses hat seinen Grund in der Anordnung des Stoffes. Jeder der vier Schritte wird in einem eigenen Kapitel behandelt. Jedes dieser Kapitel enthält dann alle Teilschritte, Möglichkeiten und Beispiele. Jedes Beispiel wird also nur Schritt-für-Schritt mit Unterbrechungen behandelt. Dieses stört den Lesefluss.
Das Buch ist nicht für Anfänger der parallelen Programmierung geeignet. Man sollte schon ein paar Erfahrungen gemacht haben, um die Patterns nachvollziehen zu können.
Als Nachschlagewerk ist das Buch allerdings hervorragend geeignet. Jeder parallele Programmierer sollte den Inhalt des Buches kennen.
From my perspective some minor issues that prevent a perfect "five" are: On the one hand I had the impression that the content of this book could be sharper. There is some redundant information within the book. Also some negligible information like the almost one page table 2.1. that lists "some parallel programming environments from the Mid-1990s". On the other hand I'd would have liked to read more about the differences between similar patterns.
It is an inspiring book inspite or because of some negligible flaws.
Die hilfreichsten Kundenrezensionen auf Amazon.com
The Good: this volume discusses both shared-memory and distributed-memory programming, all between one set of covers. It also makes use of a general-purpose programming language and is therefore of interest both to computational scientists who are interested in clusters, and to programmers interested in multiprocessors (these days that covers pretty much everyone). More generally, PPP offers valuable advice to those interested in robust parallel software design. The authors cover a number of topics that are an essential part of parallel-programming lore (e.g. the 1D and 2D block-cyclic array distributions in Chapter 5). In other words, they codify existing knowledge, which is precisely what patterns are supposed to do. To accomplish this, they make effective use of a small number of examples (like molecular dynamics and the Mandelbrot set). That allows them to show a specific problem as approached both from different design spaces, and also from different patterns within one design space. This book follows in the footsteps of the illustrious volume "Design Patterns" by the Gang of Four (GoF). In chapters 3, 4, and 5, Mattson, Sanders, and Massingill introduce a number of patterns using a simplified version of the GoF template. Despite the structural similarities between the two books, PPP is more readable than the GoF volume. This is probably because it introduces a pattern language ("an organized way of navigating through a collection of design patterns to produce a design"), not just a collection of patterns. Essentially, the writing style is a linear combination of narrative and reference: it can be read cover-to-cover, or not. Finally, the three appendices contain introductory discussions of OpenMP, MPI, and concurrency in Java, respectively. They can be read either as the need arises, or before even starting the book: though limited in scope, they are pedagogically sound.
The Bad: despite being easier to read from start to finish than the GoF classic, this book is still constrained by its choice to catalog patterns. As a result, the recurring examples lead to repetition, since they have to be re-introduced in each example section. Also, given that the book was published in 2004, a few implementation-related topics are somewhat out-of-date (e.g., OpenMP 3.0 was not around at the time). Importantly, the book predates the recent explosion of interest in general-purpose GPU programming, so it doesn't mention, say, texture memory. However, more fundamental things like data decomposition, which the book does explain, are related to any parallel programming environment. On a different note, even though the book is generally readable, from time to time the authors resort to the "just look at the code and figure it out" technique: the best-known example is in chapter 4 when they discuss ghost cells and nonblocking communication. Furthermore, even though the authors have been for the most part clearheaded when naming the different patterns, I found their decision to call two distinct patterns "Data Sharing" and "Shared Data" (in the "Finding Concurrency" and "Supporting Structures" design spaces, respectively) quite confusing and therefore unfortunate. Also, the Glossary is very useful, in that it explains many terms either discussed in the text (e.g. "False sharing") or not (e.g. "Copy on write", "Eager evaluation"), but it is far from complete (e.g. "First touch", "Poison pill", and "Work stealing", though mentioned in the main text, are not included in the Glossary). Finally, I think the authors overstate the case when they claim that "the parallel programming community has converged around" Java: Pthreads would have been an equally (if not more) acceptable choice.
All in all, this book provides a good description of many aspects of parallel programming. Most other texts on parallel programming either are class textbooks or focus on a specific technology. In contradistinction to such books, "Patterns for parallel programming" strikes a happy medium between focusing on principles and discussing practical applications.
In some sections the repeats get one level that even looks like a copy & paste from one page to the next one ...And for me that I'm someone how likes to go to the point that's really annoying!
Why only four stars you may ask? The trouble is that after over 40 years knowledge about parallel programming is still weak. The scientific computation folks have their (often heavy duty) tricks of the trade, but, as another reviewer pointed out, parallel computing is much more and is starting to address much broader areas.
This book will help you wade through the maze of confusion and will help you get oriented - that is of a huge help. Then you need to practice...