ABSTRACT
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.
- W. Jalby, C. Lemuet, and X. Le Pasteur. WBTK: A new set of microbenchmarks to explore memory system performance for scientific computing. International Journal of High Performance Computing Applications, 18:211--224, 2004. Google ScholarDigital Library
- Magnus Karlsson, Fredrik Dahlgren, and Per Stenström. A prefetching technique for irregular accesses to linked data structures. pages 206--217, January 2000.Google Scholar
- D. Levinthal. Analyzing and resolving multi-core non scaling on intel core 2 processors. http://www.devx.com/go-parallel/Link/34762.Google Scholar
- Chi-Keung Luk and Todd C. Mowry. Compiler-based prefetching for recursive data structures. In ASPLOS-VII: Proceedings of the seventh international conference on Architectural support for programming languages and operating systems, pages 222--233, New York, NY, USA, 1996. ACM Press. Google ScholarDigital Library
- Harmen L.A. van der Spek, Erwin M. Bakker, and Harry A.G. Wijshoff. A compile/run-time environment for the automatic transformation of linked list data structures. International Journal of Parallel Programming, 36(6):592--623, December 2008. Google ScholarDigital Library
- Harmen L.A. van der Spek, Erwin M. Bakker, and Harry A.G. Wijshoff. SPARK00: A benchmark package for the compiler evaluation of irregular/sparse codes. In ASCI 2008: Fourteenth Annual Conference of the Advanced School for Computing and Imaging, 2008.Google Scholar
Index Terms
- Characterizing the performance penalties induced by irregular code using pointer structures and indirection arrays on the intel core 2 architecture
Recommendations
Distributed memory code generation for mixed Irregular/Regular computations
PPoPP 2015: Proceedings of the 20th ACM SIGPLAN Symposium on Principles and Practice of Parallel ProgrammingMany applications feature a mix of irregular and regular computational structures. For example, codes using adaptive mesh refinement (AMR) typically use a collection of regular blocks, where the number of blocks and the relationship between blocks is ...
Streaming irregular arrays
Haskell 2017: Proceedings of the 10th ACM SIGPLAN International Symposium on HaskellPrevious work has demonstrated that it is possible to generate efficient and highly parallel code for multicore CPUs and GPUs from combinator-based array languages for a range of applications. That work, however, has been limited to operating on flat, ...
Streaming irregular arrays
Haskell '17Previous work has demonstrated that it is possible to generate efficient and highly parallel code for multicore CPUs and GPUs from combinator-based array languages for a range of applications. That work, however, has been limited to operating on flat, ...
Comments