I think most people take Tony Hoare's optimization remark "premature optimization is the root of all evil" too seriously...especially those people that write books on programming. In this book, Goedecker and Hoise explain how to optimize code on a variety of platforms and for a variety of common scientific operations (matrix math, FFT, etc.). We, as writers of scientific software, can no longer depend on Moore's law to make our codes run faster. Similarly, optimizing compilers can't understand the "big picture" of our software, and in certain cases it is beneficial to optimize by hand.
CPUs outpace memory speed by several orders of magnitude, so the hierarchical memory paradigm (caches and the like) has been used and improved over the past few years. The main focus of the book is to show how to take advantage of the caches, but other optimization ideas are discussed as well, like various tricks with floating point numbers and library calls. All of these topics are not discussed in general programming books or parallel programming books, where the latter is a shocking revelation to me- generally if you are bothering to go to multiple processors, you should bother to optimize the hell out of the serial code along the way.
The text is easy to read, with plenty of clear examples and a chapter of case studies which go beyond the simple proof-of-concept discussion with the individual optimization methods. The examples are all in FORTRAN, and as a C guy myself, I found them easy enough to understand. The book is a few years old...it could probably stand updating. We now have several cache layers on modern processors, in addition to multiple cores on one chip. The book focuses on RISC CPUs, even though today both the RISC and CISC paradigms are migrating towards each other and borrowing ideas. Regardless of the book showing its age, it is still full of applicable knowledge for scientists and engineers that write number-crunching applications.
Author(s): Adolfy Hoisie
Series: Software, environments, tools
Publisher: Society for Industrial and Applied Mathematics
Year: 2001
Language: English
Pages: 186
City: Philadelphia, PA