Multi-Core Programming
This title helps you discover programming techniques for Intel multi-core architecture and Hyper-Threading Technology. Software developers can no longer rely on increasing clock speeds alone to speed up single-threaded applications; instead, to gain a competitive advantage, developers must learn how to properly design their applications to run in a threaded environment. Multi-core architectures have a single processor package that contains two or more processor "execution cores," or computational engines, and deliver - with appropriate software - fully parallel execution of multiple software threads. Hyper-Threading Technology enables additional threads to operate on each core. This book helps software developers write high-performance multi-threaded code for Intel"s multi-core architecture while avoiding the common parallel programming issues associated with multi-threaded programs. It includes: Elements of parallel programming and multi-threading; Programming with threading APIs; OpenMP: The portable solution; solutions to common parallel programming problems; Debugging and testing multi-threaded applications; and, Software development tools for multi-threading. This book is a practical, hands-on volume with immediately usable code examples that enable readers to quickly master the necessary programming techniques. The companion Web site contains pointers to threading and optimization tools, code samples from the book, and extensive technical documentation on Intel multi-core architecture.