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 FEATURES A 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.Lin, Calvin is the author of 'Parallel Programming ', published 2008 under ISBN 9780321487902 and ISBN 0321487907.