Professional Multicore Programming:
Design and Implementation for C++ Developers
Published by:
Wrox (Owned by John Wiley & Sons)
Paperback: 648 pages
Publication Date: September 9, 2008
Language: English
ISBN-10: 0470289627
ISBN-13: 978-0470289624
Manufactured in the United States of America
INTRODUCTION
The multicore revolution is at hand. Parallel processing is no longer the exclusive domain of supercomputers or clusters. The entry - level server and even the basic developer workstation have the capacity for hardware - and software - level parallel processing. The question is what does this mean for the software developer and what impact will it have on the software development process? In the race for who has the fastest computer, it is now more attractive for chip manufacturers to place multiple processors on a single chip than it is to increase the speed of the processor. Until now the software developer could rely on the next new processor to speed up the software without having to make any actual improvements to the software. Those days are gone. To increase overall system performance, computer manufacturers have decided to add more processors rather than increase clock frequency. This means if the software developer wants the application to benefit from the next new processor, the application will have to be modified to exploit multiprocessor computers. Although sequential programming and single core application development have a place and will
remain with us, the landscape of software development now reflects a shift toward multithreading and multiprocessing. Parallel programming techniques that were once only the concern of theoretical computer scientists and university academics are in the process of being reworked for the masses. The ideas of multicore application design and development are now a concern for the mainstream.
LEARN MULTICORE PROGRAMMING
Our book Professional Multicore Programming: Design and Implementation for C++ Developers presents the ABCs of multicore programming in terms the average working software developer can understand. We introduce the reader to the everyday fundamentals of programming for multiprocessor and
multithreaded architectures. We provide a practical yet gentle introduction to the notions of parallel processing and software concurrency. This book takes complicated, almost unapproachable, parallel programming techniques and presents them in a simple, understandable manner. We address the pitfalls and traps of concurrency programming and synchronization. We provide a no - nonsense discussion of multiprocessing and multithreading models. This book provides numerous programming examples that demonstrate how successful multicore programming is done. We also include methods
and techniques for debugging and testing multicore programming. Finally, we demonstrate how to take advantage of processor specific features using cross - platform techniques.
TABLE OF CONTENTS
Chapter 1: The New Architecture
Chapter 2: Four Effective Multicore Designs Chapter 3: The Challenges of Multicore Programming
Chapter 4: The Operating System’s Role Chapter 5: Processes, C++ Interface
Classes, and Predicates
Chapter 6: Multithreading
Chapter 7: Communication and Synchronization of Concurrent Tasks
Chapter 8: PADL and PBS: Approaches to Application Design
Chapter 9: Modeling Software Systems
That Require Concurrency
Chapter 10: Testing and Logical Fault Tolerance for Parallel Programs
Appendix A: Tools UsedIndex
LINKS ABOUT THIS BOOK
Book Index