
Ebook Info
- Published: 2008
- Number of pages: 360 pages
- Format: PDF
- File Size: 7.86 MB
- Authors: Calvin Lin
Description
With the rise of multi-core architecture, parallel programming is an increasingly important topic for software engineers and computer system designers. Written by well-known researchers Larry Snyder and Calvin Lin, this highly anticipated first edition emphasizes the principles underlying parallel computation, explains the various phenomena, and clarifies why these phenomena represent opportunities or barriers to successful parallel programming. Ideal for an advanced upper-level undergraduate course, Principles of Parallel Programming supplies enduring knowledge that will outlive the current hardware and software, aiming to inspire future researchers to build tomorrow’s solutions.
User’s Reviews
Editorial Reviews: Review “…the first basic book on the subject that I’ve ever seen that seems to have the pulse on the true issues of parallelism that are relevant for students.” – Alan Edelman, MIT “Principles of Parallel Programming is a wonderful book and I plan to use it in our new parallel programming course…” – Peiyi Tang, University of Arkansas, Little Rock “I like [Principles of Parallel Programming] very much for a few specific reasons: it’s concise, covers the most relevant topics but does not take thousand pages to do it, it is hands on and it covers…recent developments with multi-core and GPGPU.” – Edin Hodzic, Santa Clara University From the Back Cover With the rise of multi-core architecture, parallel programming is an increasingly important topic for software engineers and computer system designers. Principles of Parallel Programming, written by well-known researchers Calvin Lin and Lawrence Snyder, focuses on the underlying principles of parallel computation, explains the various phenomena, and clarifies why these phenomena represent opportunities or barriers to successful parallel programming. This book is ideal for an upper-level undergraduate or master’s level course, or for a professional programmer seeking an introduction to parallelism. The text supplies valuable, enduring information that will outlive the current hardware and software. KEY FEATURESA principles-first approach emphasizes the fundamental concepts of parallel computation rather than offering a “how-to” guide for current commercial products. Popular programming languages are discussed in the context of the principles and tools used for programming contemporary parallel machines. Note boxes provide interesting extensions of the information presented. Definition boxes define key words and concepts. Chapter exercises offer opportunities to implement the concepts discussed. Future Directions in Parallel Programming (Chapter 10) focuses on current developments that are likely to impact the field. Writing Parallel Programs (Chapter 11) provides hands-on practice for readers to create a substantial parallel program. www.pearsonhighered.com/lin About the Author Lawrence Snyder is Professor of Computer Science and Engineering at the University of Washington in Seattle. He received his PhD from Carnegie Mellon University and has devoted most of his career to parallel computation research, including architecture, algorithms and languages. With Calvin Lin and UW graduate students, he developed the ZPL parallel programming language. He is a fellow of the ACM and IEEE. He is an ardent traveler, enthusiastic theater-goer and occasional skier. Calvin Lin is an Associate Professor of Computer Sciences at The University of Texas at Austin, where he also serves as Director of the Turing Scholars Honors Program of undergraduate CS majors. He received his PhD from the University of Washington under the supervision of Lawrence Snyder. His current research interests include compilers and micro-architecture. In his spare time, he is an avid ultimate Frisbee player and coach of UT’s Men’s Ultimate Frisbee team. Read more
Reviews from Amazon users which were colected at the time this book was published on the website:
⭐As a professor, I use this book in my classes since it covers all the main topics in Parallel Programming while keeping an adequate balance between programming (my main interest) and computer architecture.
⭐This book is overpriced and the content is very very dated. Who wants to learn ZPL in today’s world? If you want to learn about parallelism pickup a copy of Patterns for Parallel Programming Timothy G. Mattson, Beverly A. Sanders, Berna L. Massingill. Don’t waste ur money on this book.
⭐Years ago I briefly worked on a hypercube, and when I got this book, I wondered how it had fared. Alas, the hypercube, at least under this name, rated no mention. Though there is a passing reference to a binary 3 cube which is a 3 dimensional hypercube.The authors explain the current state of multiprocessor architectures. The few remaining computer CPU makers have efforts in this field. Intel, AMD, Sun and IBM. The book describes qualitatively the salient aspects of each. One nice thing about the discussion is that it focuses on this, without drowning you in unnecessary hardware details. This turns out to be a key theme of the book. It abstracts out essential hardware properties, so that you can appreciate these and apply the book’s ideas without being tied to any given chip.The book also describes an important type of multiprocessor. Cluster machines, where each node is typically some off the shelf CPU, buffed up with a lot of local memory. The key differences between clusters are often related to how the nodes are hooked to each other, by some type of bus or crossbar. Affordability is an important property of clusters; thus the maximal use of commodity hardware. (The hypercube that I mentioned earlier would be a cluster.)For a programmer, there is one overriding idea that you should get from the book. For optimal performance, minimise the internodal communication, compared to the use of a node’s cache. The access time of the former can be 2-5 orders of magnitude slower. Details vary with the given architectures, of course. But typically nothing else comes close, in terms of effects on your throughput.
⭐I have done parallel programming on a variety of machines for many years, and have written some widely-used parallel numerical software. Now that I have graduate students of my own and teach courses in numerical and parallel computation, I’ve been hoping for a book like this to help my students understand the basic techniques, concepts, and problems common to most parallel programming, as well as to use as a reference for courses, without resorting to manuals bogged down in the details of specific architectures. A colleague of mine (who has a large company developing parallel tools and who for many years has taught a course on parallel scientific computing) pointed me to this text, and I’m much more pleased with it than with any recent book on the subject that I can recall.The authors of this book clearly introduce key concepts of extracting parallelism, load balancing, performance analysis, and memory management with a number of well-selected examples and advice clearly stemming from long experience in the field. They describe numerous general principles in an accessible way, without getting bogged down in the theoretical models of dubious utility that are too common in this field. The book is timely, in that it exhibits a clear awareness of current architectural trends, but remains rightly focused on timeless ideas.I suppose the authors cannot be blamed for devoting a chapter to the parallel programming language they have developed in their own work (ZPL), and it is balanced by chapters on the current popular low-level techniques like MPI and threads as well as brief discussions of other proposed high-level languages (although the mention of Cilk is a bit too brief for my tastes). But the real strength of the book is that it is not tied too closely to any particular language or implementation, and instead helps you to recognize fundamental ideas as they appear in various forms.I do wish the book were a bit cheaper, but high textbook prices seem to be a fact of life. A more basic introduction to caches, and the connection between memory locality on serial computers and locality on parallel machines, would probably be helpful. The mention of the powerful idea of work stealing is too brief. And I’m sure I’ll find many other things I dislike as I continue to use this book, but overall I’m quite happy with this book as a way to get students into this subject.
⭐This book is absolutely riddled with errors. The sheer density of errors make the book unusable for any in-depth study.
⭐To Many mistakes in the book. I just happened to see the errata of the book. Another observation is that most of the errors (of the 82 errors in all )are from the programs written to help understanding. Why did not you guys compiled your code before taking a call to put it in finalized version ?However, I also want to add that the style of picking up the concepts and explaining things becomes very good if the inconvinience of looking into errors is absent.
Keywords
Free Download Principles of Parallel Programming 1st Edition in PDF format
Principles of Parallel Programming 1st Edition PDF Free Download
Download Principles of Parallel Programming 1st Edition 2008 PDF Free
Principles of Parallel Programming 1st Edition 2008 PDF Free Download
Download Principles of Parallel Programming 1st Edition PDF
Free Download Ebook Principles of Parallel Programming 1st Edition