Software Optimization for High Performance Computing: Creating Faster Applications
Kevin R. Wadleigh
Isom L. Crawford, Both of Hewlett Packard, Richardson, Texas

ISBN-10: 0130170089
ISBN-13: 9780130170088

Publisher: Prentice Hall
Copyright: 2000
Format: Paper; 377 pp
Published: 05/18/2000

Suggested retail price: $46.99
Buy from myPearsonStore

This book is written for programmers who want to get high performance from the software they write. The optimization techniques discussed are applicable to all computers, but are of most interest to designers of software for high performance computers, since they are most concerned with high performance. The main focus is on UNIX, though since Windows NT is now being used on high performance servers, there is limited coverage on this. Single processor and parallel performance is discussed.

The hands-on guide for high-performance coding and algorithm optimization.

  • Covers both code-based and algorithm-based optimization,in unprecedented depth.
  • Covers high-end UNIX processors, the Pentium family, and the new EPIC Intel IA-64 architecture.
  • Compilers, profiling, language-independence, storage, memory, and other key performance factors.

(NOTE: Each chapter begins with an Introduction and concludes with a Summary.)

1. Introduction.

Hardware Overview-Your Work Area. Software Techniques-The Tools. Applications-Using the Tools.

I. HARDWARE OVERVIEW-YOUR WORK AREA.

2. Processors: The Core of High Performance Computing.

Types. Pipelining. Instruction Length. Registers. Functional Units. CISC and RISC Processors. Vector Processors. VLIW.

3. Data Storage.

Caches. Virtual Memory Issues. Memory. Input/Output Devices. I/O Performance Tips for Application Writers.

4. An Overview of Parallel Processing.

Parallel Models. Hardware Infrastructures for Parallelism. Control of Your Own Locality.

II. SOFTWARE TECHNIQUES-THE TOOLS.

5. How the Compiler Can Help and Hinder Performances.

Compiler Terminology. Compiler Options. Compiler Directives and Pragmas. Metrics. Compiler Optimizations. Interprocedural Optimization. Change of Algorithm.

6. Predicting and Measuring Performance.

Timers. Profilers. Predicting Performance.

7. Is High Performance Computing Language Dependent

Pointers and Aliasing. Complex Numbers. Subroutine or Function Call Overhead. Standard Library Routines. Odds and Ends.

8. Parallel Processing-An Algorithmic Approach.

Process Parallelism. Thread Parallelism. Parallelism and I/O. Memory Allocation, ccNUMA, and Performance. Compiler Directives. The Message Passing Interface (MPI).

III. APPLICATIONS-USING THE TOOLS.

9. High Performance Libraries.

Linear Algebra Libraries and APIs. Signal Processing Libraries and APIs. Self-Tuning Libraries. Commercial Libraries.

10. Mathematical Kernels: The Building Blocks of High Performance.

Building Blocks. BLAS. Scalar Optimization. Vector Operations. Matrix Copy and Transpose. BLAS and Performance. Winograd's Matrix-Matrix Multiplication. Complex Matrix-Matrix Multiplication with Three Real Multiplications. Strassen's Matrix-Matrix Multiplication.

11. Faster Solutions for Systems of Equations.

A Simple Example. LU Factorization. Cholesky Factorization. Factorization and Parallelization. Forward-Backward Substitution (FBS). Sparse Direct Systems of Equations. Iterative Techniques.

12. High Performance Algorithms and Approaches for Signal Processing.

Convolutions and Correlations. DFTs/FFTs. The Relationship Between Convolutions and FFTs.

Index.

"(This) is a book that should be in the hands of programmers in high-performance computing."—Greg Astfalk, Chief Scientist, Technical Computing Division, Hewlett-Packard Company.

ISOM CRAWFORD and KEVIN WADLEIGH are mathematicians in the Technical Computing Division of Hewlett Packard Corporation. Dr. Wadleigh develops high-performance algorithms for independent software vendors working with HP servers. Dr. Crawford specializes in parallel technical computing applications.

The hands-on guide to high-performance coding and algorithm optimization.

This hands-on guide to software optimization introduces state-of-the-art solutions for every key aspect of software performance – both code-based and algorithm-based.

Two leading HP software performance experts offer comparative optimization strategies for RISC and for the new Explicitly Parallel Instruction Computing (EPIC) design used in Intel IA-64 processors. Using many practical examples, they offer specific techniques for:

  • Predicting and measuring performance – and identifying your best optimization opportunities
  • Storage optimization: cache, system memory, virtual memory, and I/0
  • Parallel processing: distributed-memory and shared-memory (SMP and ccNUMA)
  • Compilers and loop optimization
  • Enhancing parallelism: compiler directives, threads, and message passing
  • Mathematical libraries and algorithms
  • Whether you're a developer, ISV, or technical researcher, if you need to optimize high-performance software on today's leading processors, one book delivers the advanced techniques and code examples you need: Software Optimization for High Performance Computing.

View a Sample Chapter PDF:

Pearson Higher Education offers special pricing when you choose to package your text with other student resources. If you're interested in creating a cost-saving package for your students, contact your Pearson Higher Education representative for pricing and ordering information.

Pearson Higher Education offers special pricing when you choose to package your text with other student resources. If you're interested in creating a cost-saving package for your students contact your Pearson Higher Education representative.


Copyright ©2008 Pearson Education. All rights reserved. Legal Notice | Privacy Policy | Permissions