REVIEW - High Performance Compilers for Parallel Computing


Title:

High Performance Compilers for Parallel Computing

Author:

Michael Joseph Wolfe

ISBN:

Publisher:

Addison-Wesley (1996)

Pages:

570pp

Reviewer:

Brian Bramer

Reviewed:

October 1998

Rating:

★★★☆☆


I found this a very interesting book relevant to my own research work. It would be useful not only for those writing compilers for parallel systems but also for anyone implementing code on sequential or parallel architectures who need to consider the efficiency of generated code.

Parallel hardware is becoming more common, however, the software to use such hardware lags far behind. For example, I have a four-processor system with FIFOs and shared memory for interprocessor communications but I still have to write separate C programs for each processor and the handle communications myself.

This book really deals with code generation for parallel systems. Chapter one considers matrix multiply and how performance can be improved on scaler processors by improving cache spatial or temporal locality (by changing loop order or structure) then moves on to consider improvements on vector, multi-processor (with shared memory), SIMD and MIMD architectures. Chapter two looks at language extensions to support parallelism, e.g. forall in High Performance Fortran. Chapters three and four deal with compiler analysis algorithms (graph concepts and linear algebra) and five to nine the optimiser (looking in particular at data dependence and how this effects scaler and parallel code generation). Code generation for a range of target architectures is then discussed, e.g. vector computers, shared memory parallel computers, message passing parallel computers, etc. Critical points considered are array references, generating concurrency from sequential and parallel loops (such as dopar and doall) and how nested loops are handled.

I found this a very interesting book relevant to my own research work. It would be useful not only for those writing compilers for parallel systems but also for anyone implementing code on sequential or parallel architectures who need to consider the efficiency of generated code (in particular loop generation and optimising array element access).


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.