Professional Multicore Programming: Design and Implementation for C++ Developers
In order to increase overall system performance, computer manufacturers have opted to add more processors rather than increase clock frequency. In turn, if you want an application to benefit from the next new processor, that application will have to be modified to exploit multiprocessor computers. This practical book shifts the focus from sequential programming techniques to parallel and multithreaded programming techniques and introduces you to the everyday fundamentals of programming for multiprocessor and multithreaded architectures.
This duo of experienced authors takes the complicated topics of parallel processing and software concurrency and presents them in a clear, understandable manner. Their no-nonsense approach to programming multiprocessing and multithreading models, along with numerous helpful examples, demonstrates how to execute successful multicore programming and enables you to harness the power of the new multicore processors to their fullest potential.
What you will learn from this book
The various pitfalls, traps, and challenges of concurrency programming and synchronization
Methods and techniques for debugging and testing multicore programming
How to take advantage of processor-specific features using cross-platform techniques
The role of the operating system in multicore programming
Ways to take advantage of framework classes as building blocks for concurrency
How to reduce the complexity of task synchronization and communication through the use of interface classes
Who this book is for
This book is for developers of various skill levels who are making the move into multicore programming and application development.
Wrox Professional guides are planned and written by working programmers to meet the real-world needs of programmers, developers, and IT professionals. Focused and relevant, they address the issues technology professionals face every day. They provide examples, practical solutions, and expert education in new technologies, all designed to help programmers do a better job.