ACCU Home page ACCU Conference Page
Search Contact us ACCU at Flickr ACCU at GitHib ACCU at Google+ ACCU at Facebook ACCU at Linked-in ACCU at Twitter Skip Navigation

Search in Book Reviews

The ACCU passes on review copies of computer books to its members for them to review. The result is a large, high quality collection of book reviews by programmers, for programmers. Currently there are 1918 reviews in the database and more every month.
Search is a simple string search in either book title or book author. The full text search is a search of the text of the review.
    View all alphabetically
Software Optimization for High Perfromance Computing
0 13 017008 9
Prentice Hall
Pete Goodliffe
Appeared in:
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.