TY - GEN
T1 - A shape analysis for optimizing parallel graph programs
AU - Prountzos, Dimitrios
AU - Manevich, Roman
AU - Pingali, Keshav
AU - McKinley, Kathryn S.
PY - 2010/12/1
Y1 - 2010/12/1
N2 - Computations on unstructured graphs are challenging to parallelize because dependences in the underlying algorithms are usually complex functions of runtime data values, thwarting static parallelization. One promising general-purpose parallelization strategy for these algorithms is optimistic parallelization. This paper identifies the optimization of optimistically parallelized graph programs as a new application area, and develops the first shape analysis for addressing this problem. Our shape analysis identifies failsafe points in the program after which the execution is guaranteed not to abort and backup copies of modified data are not needed; additionally, the analysis can be used to eliminate redundant conflict checking. It uses two key ideas: a novel top-down heap abstraction that controls state space explosion, and a strategy for predicate discovery that exploits common patterns of data structure usage. We implemented the shape analysis in TVLA, and used it to optimize benchmarks from the Lonestar suite. The optimized programs were executed on the Galois system. The analysis was successful in eliminating all costs related to rollback logging for our benchmarks. Additionally, it reduced the number of lock acquisitions by a factor ranging from 10× to 50×, depending on the application and the number of threads. These optimizations were effective in reducing the running times of the benchmarks by factors of 2× to 12×.
AB - Computations on unstructured graphs are challenging to parallelize because dependences in the underlying algorithms are usually complex functions of runtime data values, thwarting static parallelization. One promising general-purpose parallelization strategy for these algorithms is optimistic parallelization. This paper identifies the optimization of optimistically parallelized graph programs as a new application area, and develops the first shape analysis for addressing this problem. Our shape analysis identifies failsafe points in the program after which the execution is guaranteed not to abort and backup copies of modified data are not needed; additionally, the analysis can be used to eliminate redundant conflict checking. It uses two key ideas: a novel top-down heap abstraction that controls state space explosion, and a strategy for predicate discovery that exploits common patterns of data structure usage. We implemented the shape analysis in TVLA, and used it to optimize benchmarks from the Lonestar suite. The optimized programs were executed on the Galois system. The analysis was successful in eliminating all costs related to rollback logging for our benchmarks. Additionally, it reduced the number of lock acquisitions by a factor ranging from 10× to 50×, depending on the application and the number of threads. These optimizations were effective in reducing the running times of the benchmarks by factors of 2× to 12×.
KW - Abstract interpretation
KW - Amorphous data-parallelism
KW - Cautious operators
KW - Compiler optimization
KW - Concurrency
KW - Irregular programs
KW - Optimistic parallelization
KW - Parallelism
KW - Shape analysis
KW - Static analysis
KW - Synchronization overheads
UR - http://www.scopus.com/inward/record.url?scp=79952013649&partnerID=8YFLogxK
U2 - 10.1145/1926385.1926405
DO - 10.1145/1926385.1926405
M3 - Conference contribution
AN - SCOPUS:79952013649
SN - 9781450304900
T3 - Conference Record of the Annual ACM Symposium on Principles of Programming Languages
SP - 159
EP - 171
BT - POPL'11 - Proceedings of the 38th Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages
T2 - 38th Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, POPL'11
Y2 - 26 January 2011 through 28 January 2011
ER -