This book is a "must" for anyone who needs to worry about computer performance, either as a software developer or as a buyer. But it also provides valuable insights for those among us who do relatively little programming and run mostly third-party application software. Even if you never touch a line of code, High Performance Computing will give you a feel for how the most recent generation of computer hardware works. If you work with computers, you owe it to yourself to understand the new directions that workstation architecture has taken in the last half decade, including RISC-based workstation architectures like DEC Alpha/AXP, the IBM RS/6000 and the HP 9000/700 series.
This book covers everything, from the basics of modern workstation architecture, to structuring benchmarks, to squeezing more performance out of critical applications. It also explains how optimizing compilers work: it discusses what a good compiler can do for you and, more important, what you have to do yourself. The author also discusses techniques for improving memory access patterns and taking advantage of parallelism. The book closes with a look at the high-performance future: parallel computers, including exotic distributed memory multiprocessors, and the more "garden-variety" shared memory processors that are already appearing on people's desktops.
High Performance Computing pays special attention to memory issues; perhaps the most important story in high performance computing (and one you're not likely to be told by vendors) is the increasing disparity between CPU speeds and memory speeds.
Another valuable section of the book discusses the benchmarking process: how to evaluate a computer's performance. Kevin Dowd discusses several of the "standard" industry benchmarks, explaining what they measure and what they don't. He also explains how to set up your own benchmark: how to structure the code, how to measure the results, and how to interpret them.