Highly recommended books for Threading and Parallel programming
|Designing a New Class of Distributed Systems, by Rao Mikkilineni |
Designing a New Class of Distributed Systems closely examines the Distributed Intelligent Managed Element (DIME) Computing Model, a new model for distributed systems, and provides a guide to implementing Distributed Managed Workflows with High Reliability, Availability, Performance and Security.
The book also explores the viability of self-optimizing, self-monitoring autonomous DIME-based computing systems. Designing a New Class of Distributed Systems is designed for practitioners as a reference guide for innovative distributed systems design. Researchers working in a related field will also find this book valuable.
|Concurrent Programming in Java, by Douglas Lea|
The Java platform provides a broad and powerful set of APIs, tools, and technologies. One of its most powerful capabilities is the built-in support for threads. This makes concurrent programming an attractive yet challenging option for programmers using the Java programming language.
The book shows readers how to use the Java platform's threading model more precisely by helping them to understand the patterns and tradeoffs associated with concurrent programming. --- Amazon.com
|Concurrent Programming on Windows, by Joe Duffy.|
This book explains how to design, implement, and maintain large-scale concurrent programs, primarily using C# and C++ for Windows.
|Harnessing the UEFI Shell, Moving the platform beyond DOS By Michael Rothman, Tim Lewis, Vincent Zimmer and Robert Hale|
The Unified Extensible Firmware Interface (UEFI) Shell is designed for programmers who are writing automation process software for computer-based equipment. In Harnessing the UEFI Shell the authors describe the features and capabilities of the shell for the UEFI
|Intel® Integrated Performance Primitives, How to Optimize Software Applications Using Intel® IPP, by Stewart Taylor|
Intel® Integrated Performance Primitives (Intel® IPP) is a software library for application developers that increases performance from Intel's latest microprocessors. Incorporating these functions into your code provides time-to-market advantages while reducing the overall cost of development.
|Intel® Threading Building Blocks: Outfitting C++ for Multi-core Processor Parallelism, by James Reinders|
Parallelism for C++ as defined by Intel Threading Building Blocks is being heralded as the key for multi-core programming in C++. In this book, James Reinders explains the library in a way that furnishes novices and experts alike with a clear and accessible discussion of the complexities of concurrency. The book is also packed with illustrative examples.
|Java Concurrency in Practice, by Brian Goetz et al.|
Brian's book covers the basic concepts of concurrency and thread safety, techniques for building and composing thread-safe classes, and using the concurrency building blocks in java.util.concurrent. It also includes performance optimization dos and don'ts, testing concurrent programs and advanced topics such as atomic variables, nonblocking algorithms, and the Java Memory Model.
|Mastering High Performance Multiprocessor Signaling, Electrical Design with the Intel® QuickPath Interconnect, By David Coleman and Michael Mirmak|
Mastering High Performance Multiprocessor Signaling explains the electrical design, board layout, test & measurement, and validation elements involved in implementing the Intel QuickPath Interconnect, the foundation of future generations of Intel® microprocessor systems, using a high speed, packetized, point-to-point system interconnect that uses multiple narrow high speed differential links to stitch together processors into a fabric of a distributed shared memory-style platform architecture.
|Multi-Core Programming Increasing Performance through Software Multi-threading, by Shameem Akhter and Jason Roberts.|
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.
Intel Press ISBN 0-9764832-4-6 For more information please check at: www.intel.com/intelpress
|Optimizing Applications for Multi-Core Processors, Using the Intel® Integrated Performance Primitives, Second Edition, by Stewart Taylor|
Whether you are developing a Windows*, Linux*, or Mac OS* application for a laptop, desktop, or server, the Intel® Integrated Performance Primitives (IPP) will help you obtain the highest application performance and get the most out of todays multi-core processors.
|Parallel Programming in C with MPI and OpenMP, by Michael J. Quinn|
This book is a great introduction to parallel computing. It is pragmatic and focuses on what you need to know to be productive with C and MPI or OpenMP.
|Patterns for Parallel Programming, by Timothy G. Mattson, Beverly A. Sanders, Berna L. Massingill|
This book is designed to help people new to parallel computing “think parallel”. It uses design patterns to present the essence of how experts think about parallel programming. Examples are provided in MPI, OpenMP and Java; though really the book is useful for any parallel programming language you may choose to use.
|Principles of Concurrent Programming, by M. Ben-Ari|
|Principles of Concurrent and Distributed Programming (2nd edition), by M. Ben-Ari|
The book focuses on algorithmic principles rather than language syntax with an emphasis on the use of the Spin model checker for modeling concurrent systems and verifying program correctness and includes and explains the implementation of concurrency in the Java and Ada languages. It also helps to facilitate lab work with software tools for learning concurrent and distributed programming. --- Amazon.com
|Principles of Parallel Programming, by Calvin Lin and Larry Snyder.|
The book 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.
|Programming with Hyper-Threading Technology, How to Write Multithreaded Software for Intel® IA-32 Processors, by Andrew Binstock and Richard Gerber|
Programming with Hyper-Threading Technology helps software developers write high-performance multithreaded code while avoiding the common parallel programming issues that usually plague threaded programs. This book highlights how software developers can use Hyper-Threading Technology to maximize processor throughput, efficiency, and parallelism. It is a practical, hands-on volume with immediately usable code examples that enable readers to quickly master the necessary building blocks.
|Programming with POSIX® Threads, by David R. Butenhof|
An in-depth description of the IEEE operating system interface standard, POSIX threads, commonly called Pthreads. You will attain a solid understanding of threads and will discover how to put this powerful mode of programming to work in real-world applications. --- Amazon.com
|Real World Haskell, by John Goerzen, Bryan O'Sullivan, Donald Bruce Stewart|
This easy-to-use, fast-moving tutorial introduces you to functional programming with Haskell. You'll learn how to use Haskell in a variety of practical ways, from short scripts to large and demanding applications.
|Software Development for Embedded Multi-Core Systems, by Max Domeika|
A Practical Guide Using Embedded Intel Architecture that provides embedded engineers with solid grounding in the skills required to develop software targeting multicore processors. Within the text, the author undertakes an in-depth exploration of performance analysis, and a close-up look at the tools of the trade.
|The Art of Concurrency - A Thread Monkey's Guide to Writing Parallel Applications By Clay Breshears|
"The Art of Concurrency" focuses on implementing algorithms in the shared-memory model of multi-core processors and will give you the hands-on experience you need. You'll get detailed explanations and usable samples to help you transform algorithms from serial to parallel code, along with advice and analysis to steer you clear of mistakes.
|The Software Optimization Cookbook, Second Edition|
High-Performance Recipes for IA-32 Platforms, by Richard Gerber, Aart J.C. Bik, Kevin B. Smith and Xinmin Tian
The Software Optimization Cookbook, provides updated recipes for high-performance applications on Intel platforms. Through simple explanations and examples, the authors show you how to address performance issues with algorithms, memory access, branch prediction, automatic vectorization, SIMD instructions, multiple threads, and floating-point calculations.
|Twelve Ways to Fool the Masses When giving Performance Results on Parallel Computers, David H. Bailey, Supercomputing Review, Aug. 1991, pp. 54-55|
This is one of the most cited papers in the parallel computing literature. Want to know how to manipulate your manager using performance results? This is the paper for you.
|Using OpenMP Portable Shared Memory Parallel Programming, by Barbara Chapman, Gabriel Jost and Ruud Van Der Pas|
OpenMP is the number one API for shared memory parallel computers. This book discusses OpenMP version 2.5 and is the most up to date text available about this important language and how it is used. The emphasis is on scientific computing, but the algorithms and techniques described are relevant to any class of parallel algorithm.
|Weaving High Performance Multiprocessor Fabric, Architectural Insights to the Intel® QuickPath Interconnect, By Robert A. Maddox, Gurbir Singh and Robert J. Safranek|
Weaving High Performance Multiprocessor Fabric is written for hardware design, validation and BIOS engineers to introduce the compelling mix of performance and features in the Intel® QuickPath Interconnect. It explains the Intel QuickPath Interconnect, which provides the foundation for future generations of Intel® microprocessor systems.
|Win32 Multithreaded Programming, by Cohen and Woodring|
The book is currently out of print, but still worth noting as a great referance for Win32 Multithreaded Programing.
Buy Used Now
For more complete information about compiler optimizations, see our Optimization Notice.