Algorithmic Species Revisited: A Program Code Classification Based on Array References
The shift towards parallel processor architectures has made programming, performance prediction and code generation increasingly challenging. This paper representations of program code (i.e. classifications) have been introduced to address this challenge. An example is 'Algorithmic species', a memory access pattern classification of loop nests. It provides an architecture-agnostic structured view of program code, allowing programmers and compilers to take for example parallelization decisions or perform memory hierarchy optimizations. The existing algorithmic species theory is based on the polyhedral model and is limited to static affine loop nests.