The Leading Source for Global News and Information Covering the Ecosystem of High Productivity Computing
May 29, 2008
As most high performance computing users are aware, the rise of multicore-based systems has spawned a number of problems. One of the most fundamental of them is the memory bandwidth bottleneck. As more cores are added to the die, there is proportionally less cache to serve each one, resulting in more accesses to slower main memory. To state it simply, computational power is growing faster than memory performance.
The result is that additional processor cores often spend an inordinate amount of time waiting for data to crunch on, thereby wasting the computational power of the multiple cores. Avoiding unnecessary main memory accesses and keeping cache usage optimized is critically important for performance since a processor core can execute hundreds of instructions in the time it takes to access a memory location. Chip designers have compensated to some extent by constructing processors with larger multi-level caches and hardware prefetching. Unfortunately, the potential of such hardware is only realized if the software can exploit it. To date, composing high-level source code that is well-tuned for these cache-dependent architectures has been a major challenge.
Help may be on the way. Acumem, a two-year-old Swedish company that operated in semi-stealth mode until recently, has released a new performance analyzer specifically developed to help programmers achieve good cache utilization and optimize memory access. The technology is based on work done by Erik Hagersten, the CTO of Acumem, and his research team at Uppsala University.
Called SlowSpotter, the Acumem tool illuminates "slow spots" in an application and points the developer to the offending source code or data structures. Up until now, performance analysis tools relied on hardware counters, and typically only revealed where a lot of cache misses were occurring -- so called hot spots. It was left up to the programmer to figure out what to do with that information. SlowSpotter actually finds the problematic source and suggests ways to tweak the code to optimize performance. Better yet, it ranks the problem areas in the code according to their potential for performance improvement.
For example, a fairly common problem in programs is thrashing the cache by accessing multi-dimensional arrays inefficiently. If a nested loop is traversing a two-dimensional matrix in column order (row order for Fortran), the traversal will touch one element in too many cache lines before returning to touch more data. By that time, the cache line may have been evicted. Usually, by just switching the loop traversal around, cache use is optimized.
Beside loop nesting problems, SlowSpotter will also find code with poor cache line utilization (a section of the code is using high amounts of bandwidth due to inefficient data packing); loop fusion opportunities (two loops are using the same data and may be fused to improve cache usage); irregular access patterns (an irregular data access pattern causing inefficient cache usage); and hot spots (a section of the code with a high amount of cache misses, but with no obvious fix).
Hagersten, a self-proclaimed "cache nerd," realized that most programmers aren't equipped to optimize code performance on the modern microprocessor. He says SlowSpotter results are presented in such as way so the average (i.e., non-parallel thinking) programmer can understand the problems and make the necessary code changes.
While the tool is aimed at the least common dominator, experts can benefit too. According to Hagersten, some of the most extreme performance people he knows have used the tool to uncover performance problems in code that they thought they had tuned. One customer -- an ISV -- bought a site license for the entire company. Even though the ISV had three or four people that focused on performance, they wanted everybody to have the tool to change their mindset about the importance of optimization.
Because of the ubiquity of multicore, the potential audience for SlowSpotter is huge. But the company intends to initially focus on the HPC market, where memory bandwidth limitations are most acute and the users have a better understanding of the problem. And HPC users will be the ones to see the most dramatic speed-ups. "They are getting on the multicore train much faster," notes Hagersten.
Acumem tested SlowSpotter on a SPEC application benchmark (470.lbm) that uses the "Lattice Boltzmann Method" (LBM) to simulate incompressible fluids in 3D. Using an Intel Core2 Quad Q6600 2.4GHz (1066MHz FSB and equipped with 800 MHz DDR2 RAM), the original code ran only 1.5 times faster on all four cores compared to a single core. After the SlowSpotter optimization was applied, the code ran 3.2 times faster. Even for single core execution, optimization produced a 1.6X speedup.
Page: 1 of 2(Digg, Technorati, more)
PGI Accelerator™ Fortran 95/03 and C99 compilers for x64+NVIDIA
Accelerate applications on x64+GPU platforms by adding OpenMP-like compiler directives to existing Fortran and C programs. Available now for Linux, MacOS and Windows. Download a free 15 day trial.
Platform HPC Workgroup Manager
Platform HPC Workgroup Manager integrates all the cluster productivity tools you need to deploy, run and manage your HPC environment.
Mar 18 | ChannelWeb | Westmere parts already showing up in HPC machines. Read more...
Mar 17 | The Register | But what about the tier ones? Read more...
Mar 17 | Cadalyst Magazine | A new generation of workstations is changing the nature of technical computing. Read more...
Mar 17 | Linux Magazine | Latest iteration of Sun Grid Engine able to tap into Cloud. Read more...
Mar 16 | Bio-IT World | Biotech firm builds genetic models from patient data. Read more...
Jan 12 | | In-depth look at vSMP Foundation server virtualization technology, technical implementation, use cases and capabilities. The technical whitepaper provides an architectural overview and details on the three vSMP Foundation products: vSMP Foundation for SMP, vSMP Foundation for Cluster and vSMP Foundation for Cloud.
Jan 18 | | This white paper discusses Gore’s copper cable assemblies, and how they continue to exceed the standards for providing reliable, cost-effective solutions for high-performance computer applications.
Join this online panel discussion for live Q&A with leading industry experts, analysts, and end-users to discuss the latest innovations, best practices, barriers to implementation, and measurable benefits of server virtualization with a particular focus on today's real world solutions.
Learn about scalable fault-tolerant architectures and examples of energy efficient and scalable supercomputing clusters using dual QDR InfiniBand to combine capacity computing with network failover capabilities with the help of programming languages such as MPI and a robust Linux cluster management package.
LIVE@SCO9: The IBM team discusses new innovations in hardware, software and services that help clients better understand their workloads and get insight from their R&D efforts. Technology demonstrations include the soon-to-be-released Power7 HPC processor, the DCS990 system with 2.4 petabytes of storage, the xCAT management tool, secure HPC cloud computing and more. Winners of two HPCwire Readers' and Editors’ Choice Awards! Take the IBM virtual tour at SC09 or more information go online to: http://www-03.ibm.com/systems/deepcomputing/sc09.html