REVIEW - Software Optimization for High-performance Computing


Title:

Software Optimization for High-performance Computing

Author:

Kevin R. Wadleigh, Isom L. Crawford

ISBN:

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.





Your Privacy

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

Current Setting: Non-Essential Cookies REJECTED


By clicking "Include Third Party Content" you agree ACCU can forward your IP address to third-party sites (such as YouTube) to enhance the information presented on this site, and that third-party sites may store cookies on your device.

Current Setting: Third Party Content EXCLUDED



Settings can be changed at any time from the Cookie Policy page.