Samuel Williams, Jonathon Carter, Leonid Oliker, John Shalf, and Katherine Yelick (2008)
Lattice Boltzmann Simulation Optimization on Leading Multicore Platforms
,” IEEE International Parallel and Distributed Processing Symposium (IPDPS’08).
We present an auto-tuning approach to optimize application performance on emerging multicore architectures.
The methodology extends the idea of searchbased performance optimizations, popular in linear algebra and FFT libraries, to application-specific computational kernels. Our work applies this strategy to a lattice Boltzmann application (LBMHD) that historically has made poor use of scalar microprocessors due to its complex data structures and memory access patterns. We explore one of the broadest sets of multicore
architectures in the HPC literature, including the Intel Clovertown, AMD Opteron X2, Sun Niagara2, STI Cell, as well as the single core Intel Itanium2. Rather than hand-tuning LBMHD for each system, we develop
a code generator that allows us identify a highly optimized version for each platform, while amortizing the
human programming effort. Results show that our autotuned LBMHD application achieves up to a 14x improvement
compared with the original code. Additionally, we present detailed analysis of each optimization, which reveal surprising hardware bottlenecks and software challenges for future multicore systems and applications.
Best Paper Award, Applications Track.