Click for larger image
Software Optimization for High Performance Computing: Creating Faster Applications
This is the most hands-on guide to writing high-performance software. Using many practical examples, two of Hewlett-Packard's leading software performance experts review both code-based and algorithm-based techniques. This book addresses every key factor that impacts software performance, from mathematical libraries to compilers to underlying hardware.
The authors review the role of processor design in software performance, covering each leading approach, and offering comparative optimization strategies for CISC, RISC, vector and Long Instruction Word computing, and the new Explicitly Parallel Instruction Computing (EPIC) design used by Intel/HP IA-64 processors. They address storage devices, including cache and system memory; and review each leading approach to parallel processing, including distributed memory and shared memory (UMA and NUMA) designs. The book includes detailed chapters on compiler optimization; profiling and timing code; algorithmic approaches to parallelism such as compiler directives, threads, and message passing. It also demonstrates powerful techniques for enhancing performance through the use of mathematical libraries, mathematical kernels, and equation-solving techniques such as LU decomposition.