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
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;
Conference_Titel :
Parallel and Distributed Processing, 2008. IPDPS 2008. IEEE International Symposium on
Conference_Location :
Miami, FL
Print_ISBN :
978-1-4244-1693-6
Electronic_ISBN :
1530-2075
DOI :
10.1109/IPDPS.2008.4536285