REVIEW - Software Optimization for High-performance Computing

Title:

Software Optimization for High-performance Computing

Author:

Kevin R. Wadleigh, Isom L. Crawford

ISBN:

0130170089

Publisher:

Prentice Hall Professional (2000)

Pages:

377pp

Reviewer:

Pete Goodliffe

Reviewed:

June 2001

Rating:

★★☆☆☆

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.