• DocumentCode
    1684222
  • Title

    Parallelizing irregular C codes assisted by interprocedural shape analysis

  • Author

    Asenjo, R. ; Castillo, R. ; Corbera, F. ; Navarro, A. ; Tineo, A. ; Zapata, E.L.

  • Author_Institution
    Dept. of Comput. Archit., Univ. of Malaga, Malaga
  • fYear
    2008
  • Firstpage
    1
  • Lastpage
    12
  • Abstract
    In the new multicore architecture arena, the problem of improving the performance of a code is more in the software side than in the hardware one. However, optimizing irregular dynamic data structure based codes for such architectures is not easy, either by hand or compiler assisted. Regarding this last approach, shape analysis is a static technique that achieves abstraction of dynamic memory and can help to disambiguate, quite accurately, memory references in programs that create and traverse recursive data structures. This kind of analysis has promising applicability for accurate data dependence tests in loops or recursive functions that traverse dynamic data structures. However, support for interprocedural programs in shape analysis is still a challenge, especially in the presence of recursive functions. In this work we present a novel fully context-sensitive interprocedural shape analysis algorithm that supports recursion and can be used to uncover parallelism. Our approach is based on three key ideas: i) intraprocedural support based on "coexistent links sets" to precisely describe the memory configurations during the abstract interpretation of the C code; ii) interprocedural support based on "recursive flow links" to trace the state of pointers in previous calls; and Hi) annotations of the read/written heap locations during the program analysis. We present preliminary experiments that reveal that our technique compares favorably with related work, and obtains precise memory abstractions in a variety of recursive programs that create and manipulate dynamic data structures. We have also implemented a data dependence test over our interprocedural shape analysis. With this test we have obtained promising results, automatically detecting parallelism in three C codes, which have been successfully parallelized.
  • Keywords
    data structures; parallel processing; software performance evaluation; systems analysis; coexistent links sets; interprocedural shape analysis; irregular dynamic data structure; multicore architecture; program analysis; recursive flow links; recursive functions; static technique; Algorithm design and analysis; Computer architecture; Data structures; Hardware; Multicore processing; Optimizing compilers; Read-write memory; Shape; Software performance; Testing;
  • fLanguage
    English
  • Publisher
    ieee
  • Conference_Titel
    Parallel and Distributed Processing, 2008. IPDPS 2008. IEEE International Symposium on
  • Conference_Location
    Miami, FL
  • ISSN
    1530-2075
  • Print_ISBN
    978-1-4244-1693-6
  • Electronic_ISBN
    1530-2075
  • Type

    conf

  • DOI
    10.1109/IPDPS.2008.4536285
  • Filename
    4536285