Characterizing the performance penalties induced by irregular code using pointer structures and indirection arrays on the intel core 2 architecture

Irregularity is one of the fundamental causes for performance degradation in applications. Both hardware and software have a hard time coping with irregular memory access patterns and irregularity in flow control. On the hardware side, execution is optimized for regular data accesses and irregular memory access streams cannot be predicted. On the software side, compilers are are not able to reason about memory locations and loop bounds. This prevents many optimizations to be applied. In this paper, we measure and characterize the impact of various facets of irregularity using SPARK00, a set of benchmarks that explicitly targets the measurement of the impact of irregularity, on one of themost commonly used architectures today, the Intel Core 2. The benchmarks consist of kernels that are based on pointers, a notorious cause of irregularity, kernels that use indirection arrays, and kernels that implement regular counterparts of some of the irregular kernels. By employing different data sets and different memory layouts these benchmarks are used to characterize architectural features.

[1]  Todd C. Mowry,et al.  Compiler-based prefetching for recursive data structures , 1996, ASPLOS VII.

[2]  Dr. David Levinthal Analyzing and Resolving multi-core non scaling on Intel ® Core TM 2 processors , 2007 .

[3]  W. Jalby,et al.  WBTK: a New Set of Microbenchmarks to Explore Memory System Performance for Scientific Computing , 2004, Int. J. High Perform. Comput. Appl..

[4]  Per Stenström,et al.  A prefetching technique for irregular accesses to linked data structures , 2000, Proceedings Sixth International Symposium on High-Performance Computer Architecture. HPCA-6 (Cat. No.PR00550).

[5]  Erwin M. Bakker,et al.  SPARK00: A Benchmark Package for the Compiler Evaluation of Irregular/Sparse Codes , 2008, ArXiv.

[6]  Erwin M. Bakker,et al.  A Compile/Run-time Environment for the Automatic Transformation of Linked List Data Structures , 2007, 16th International Conference on Parallel Architecture and Compilation Techniques (PACT 2007).