REVIEW - Software Optimization for High-performance Computing


Software Optimization for High-performance Computing


Kevin R. Wadleigh, Isom L. Crawford



Prentice Hall Professional (2000)




Pete Goodliffe


June 2001



I came to this book with high expectations, largely because this is a member of the 'Hewlett-Packard Professional Books' series. I was not really satisfied, perhaps partly because I expected to be more squarely in the target audience.

I would expect any book on optimisation to start with a discussion of why you would want to optimise. Following closely it would quote Jackson's maxim 'There are two rules for when to optimise 1. Do not do it. 2. (for experts only) Do not do it yet.' or some variation thereof. It does not.

The book's definition of optimisation is based solely on speed. It presumes that you want your program to run as fast as possible, without serious a mention of the expense in code/algorithm clarity. It gets around to the use of profilers to find the real bottlenecks in section three of the sixth chapter. There is not a strong focus on the efficiency gains from appropriate initial system design and/or good choice of algorithm in the first place, both of which are key. Instead it focuses on ways to tweak existing code to make it run faster.

The field of 'high performance computing' is presumed (but never explicitly defined) to be heavily number crunching applications, aeroplane design would be a good example. 'High performance computers' are the big iron machines. This will flavour whether or not you will be interested in the book. It is heavily biased to the server side of computing, with a mainly Unix slant - most heavy OS dependent examples use HP-UX (understandably). The writers mix Fortran and C, again betraying the target audience.

The book is structured in three parts. Interestingly the first section is a good overview of computer hardware and the types of computer (including CISC, RISC, vector, VLIW and parallelism). It sets the scene for most of the following optimisation strategies, which are concerned only with maximising cache potential. Section two describes software techniques for optimisation, including a not-entirely-gripping 33-page list of all possible optimisations a compiler could automatically make for you. Section three, 'Applications' is largely concerned with Fortran numerical libraries - although there is an interesting application section on signal processing.

The book's cover has a picture of a high-speed train. Perhaps it was fortuitous the authors did not pick a British train.

Book cover image courtesy of Open Library.

Your Privacy

By clicking "Accept All Cookies" you agree ACCU can store cookies on your device and disclose information in accordance with our Privacy Policy and Cookie Policy.

By clicking "Share IP Address" you agree ACCU can forward your IP address to third-party sites to enhance the information presented on the site, and that these sites may store cookies on your device.