International Journal of Parallel Programming

, Volume 36, Issue 6, pp 592–623

A Compile/Run-time Environment for the Automatic Transformation of Linked List Data Structures

  • H. L. A. van der Spek
  • S. Groot
  • E. M. Bakker
  • H. A. G. Wijshoff
Open Access
Article

DOI: 10.1007/s10766-008-0085-2

Cite this article as:
van der Spek, H.L.A., Groot, S., Bakker, E.M. et al. Int J Parallel Prog (2008) 36: 592. doi:10.1007/s10766-008-0085-2

Abstract

Irregular access patterns are a major problem for today’s optimizing compilers. In this paper, a novel approach will be presented that enables transformations that were designed for regular loop structures to be applied to linked list data structures. This is achieved by linearizing access to a linked list, after which further data restructuring can be performed. Two subsequent optimization paths will be considered: annihilation and sublimation, which are driven by the occurring regular and irregular access patterns in the applications. These intermediate codes are amenable to traditional compiler optimizations targeting regular loops. In the case of sublimation, a run-time step is involved which takes the access pattern into account and thus generates a data instance specific optimized code. Both approaches are applied to a sparse matrix multiplication algorithm and an iterative solver: preconditioned conjugate gradient. The resulting transformed code is evaluated using the major compilers for the x86 platform, GCC and the Intel C compiler.

Keywords

Optimizing compilers Parallel processing Linked list data structures 
Download to read the full article text

Copyright information

© The Author(s) 2008

Authors and Affiliations

  • H. L. A. van der Spek
    • 1
  • S. Groot
    • 1
  • E. M. Bakker
    • 1
  • H. A. G. Wijshoff
    • 1
  1. 1.LIACS, Leiden UniversityLeidenThe Netherlands

Personalised recommendations