7 of 7 people found the following review helpful:
5.0 out of 5 stars
Clear and readable explanation of brilliant technology, February 17, 2005
This review is from: Software Vectorization Handbook, The: Applying Intel Multimedia Extensions for Maximum Performance (Paperback)
This book is an excellent introduction to one of the most remarkable achievements in software engineering the recent years. The Intel processors, combined with the Intel compilers, must be regarded as one of the wonders of our time. With the Pentium 4 processor, Intel introduced a new instruction set (SSE2) that can simultaneously operate on two double precision numbers or four single precision numbers. In addition Intel is making the compilers that take the best advantage of this architecture. This is not surprising, the company that makes the hardware is also in the best position to make the best software (compilers) that can take maximum advantage of this hardware. A very nice feature of these compilers is the Short Vector Mathematical Library (SVML), developed at Intel® Nizhny Novgorad Labs in Russia (INNL), which is a remarkable efficient library due to the efficient usage of all the features in the Pentium 4.
What is particularly fascinating about this technology is that it is possible to combine code with a high degree of readability, such as good old Fortran 77, with superior performance. This is most important for scientists that want to write efficient code but do not want to increase the probability for bugs in their programs, which often is the result when "hackers" are trying to optimize a program. Instead, the programming style recommended in this book tends to increase the readability of the programs (and thus reduce the probability of bugs), as many equations in physics are vector or symmetrical equations that are tailor-made for the vectorizing compilers of Intel.
In this book Aart Bik covers all the aspects of efficient vectorization from data dependency theory to alignment operations and vectorizing compilers. The explanations are clear and readable, and the technology is illustrated with many easy to understand examples. The reader becomes comfortable with the SSE2 instruction set and gets a good idea of what type of programming style that is required to gain maximum performance.
Recently I have seen that an application, by applying minor code reorganization, was speeded up more than 5 times by using the Intel Fortran compiler. Many are not aware of the technology described in this book and regard compilers such as gcc to be equally effective. This is sad because the commercial compilers of Intel are adapted directly to the Intel architecture and can thus take advantage of the intra-register vectorization possibilities together with the out of order execution core that can execute many instructions simultaneously. I think that this is a trend we will see in the future, to use all the available functionality in the processors special - even more advanced compilers will be required.
I am glad that Aart Bik and Intel has a taste for simplifying the job for the software engineers by introducing the vectorizing compilers that automatically takes advantage of the vector capabilities of modern processors. 2005 is the Einstein international year of physics, and I think that Einstein would have appreciated all the simplifications made by the Intel engineers. The Einstein's quote "Everything should be made as simple as possible, but not simpler", serves as good description of the technology described in the book. I find it difficult to imagine a better way to combine superior performance with the clear and simple programming style recommended in this book.
Help other customers find the most helpful reviews
Was this review helpful to you? Yes
No
5 of 5 people found the following review helpful:
5.0 out of 5 stars
excellent for bleeding edge programmers, December 13, 2004
This review is from: Software Vectorization Handbook, The: Applying Intel Multimedia Extensions for Maximum Performance (Paperback)
Bik's book provides a highly detailed explanation of how compilers exploit parallel instruction sets on processors like Intel's Pentium 4. This should be a reference for any programmer who needs to write high performance software, but doesn't want to spend months writing assembly. The book uses examples from Intel's latest compilers (kids: don't try this on your Microsoft compiler) and helps to explain some of those obscure (but extremely important) compiler features like the "restrict" keyword.
I found this book to be useful in explaining why my software wouldn't vectorize. The book describes the use of several compiler options that help you debug vectorization problems in your software. And fortuantely, Intel allows you to download and use their C++ and Fortran compiler for free (for non-commercial use) - see Intel's software website. When used with a good reference like Dr. Bik's work, your highly parallel kernels don't stand a chance.
Help other customers find the most helpful reviews
Was this review helpful to you? Yes
No