Abstract
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×.
Original language | English |
---|---|
Pages (from-to) | 159-171 |
Number of pages | 13 |
Journal | ACM SIGPLAN Notices |
Volume | 46 |
Issue number | 1 |
DOIs | |
State | Published - 1 Jan 2011 |
Externally published | Yes |
Event | 38th Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, POPL'11 - Austin, TX, United States Duration: 26 Jan 2011 → 28 Jan 2011 |
Keywords
- Abstract interpretation
- Amorphous data-parallelism
- Cautious operators
- Compiler optimization
- Concurrency
- Irregular programs
- Optimistic parallelization
- Parallelism
- Shape analysis
- Static analysis
- Synchronization overheads
ASJC Scopus subject areas
- Computer Science (all)