• DocumentCode
    2132721
  • Title

    Commutativity analysis: a technique for automatically parallelizing pointer-based computations

  • Author

    Rinard, Martin ; Diniz, Pedro

  • Author_Institution
    Dept. of Comput. Sci., California Univ., Santa Barbara, CA, USA
  • fYear
    1996
  • fDate
    15-19 Apr 1996
  • Firstpage
    14
  • Lastpage
    22
  • Abstract
    This paper introduces an analysis technique, commutativity analysis, for automatically parallelizing computations that manipulate dynamic, pointer-based data structures. Commutativity analysis views computations as composed of operations on objects. It then analyzes the program to discover when operations commute, i.e. leave the objects in the same state regardless of the order in which they execute. If all of the operations required to perform a given computation commute, the compiler can automatically generate parallel code. Commutativity analysis eliminates many of the limitations that have prevented existing compilers, which use data dependence analysis from successfully parallelizing pointer-based applications. It enables compilers to parallelize computations that manipulate graphs and eliminates the need to analyze the data structure construction code to extract global properties of the data structure topology. This paper shows how to use symbolic execution and expression manipulation to statically determine that operations commute and how to exploit the extracted commutativity information to generate parallel code. It also presents performance results that demonstrate that commutativity analysis can be used to successfully parallelize the Barnes-Hut hierarchical N-body solver, an important scientific application that manipulates a complex pointer-based data structure
  • Keywords
    data structures; object-oriented programming; parallel programming; parallelising compilers; symbol manipulation; Barnes-Hut hierarchical N-body solver; commutativity analysis; compiler; data dependence analysis; data structure construction code; data structure topology; expression manipulation; pointer-based computations; symbolic execution; Computer science; Concurrent computing; Data analysis; Data mining; Data structures; Information analysis; Manipulator dynamics; Performance analysis; Program processors; Topology;
  • fLanguage
    English
  • Publisher
    ieee
  • Conference_Titel
    Parallel Processing Symposium, 1996., Proceedings of IPPS '96, The 10th International
  • Conference_Location
    Honolulu, HI
  • Print_ISBN
    0-8186-7255-2
  • Type

    conf

  • DOI
    10.1109/IPPS.1996.508033
  • Filename
    508033