ABSTRACT
Irregular or pointer-based structures such as graphs and trees are commonly used in algorithms dealing with sparse data. Given their reliance on pointers, these algorithms are difficult to analyze and the structure of their memory accesses is obfuscated which makes the extraction of parallelism difficult.
In this work, we present a framework that is capable of reasoning about the semantics of the dynamic data footprints of operations to determine their potential overlap. We leverage the knowledge the programmer has about access patterns for the algorithm but is currently unable to express. This knowledge allows our runtime to make either a parallelization decision or throttle concurrency to improve performance in Software Transactional Memories (STMs) [6]. Our framework relies on programmer-supplied predicates that are appropriately evaluated at runtime and utilized to probabilistically assert certain properties about data footprints.
We present simple abstractions and a low-overhead runtime to support our framework. We demonstrate our work by parallelizing a graph-coloring benchmark and by improving the transactional performance of benchmarks from the STAMP suite.
- M. D. Allen, S. Sridharan, and G. S. Sohi. Serialization sets: a dynamic dependence-based parallel execution model. In PPoPP '09, pages 85--96, New York, NY, USA, 2009. ACM. Google ScholarDigital Library
- ARM. Cortex-a9 processor. http://www.arm.com/products/processors/cortex-a/cortex-a9.php.Google Scholar
- R. L. Bocchino, Jr., V. S. Adve, D. Dig, S. V. Adve, S. Heumann, R. Komuravelli, J. Overbey, P. Simmons, H. Sung, and M. Vakilian. A type and effect system for deterministic parallel java. In OOPSLA '09, pages 97--116, New York, NY, USA, 2009. ACM. Google ScholarDigital Library
- C. Cao Minh, J. Chung, C. Kozyrakis, and K. Olukotun. STAMP: Stanford transactional applications for multi-processing. In IISWC '08, September 2008.Google ScholarCross Ref
- P. Felber, C. Fetzer, and T. Riegel. Dynamic performance tuning of word-based software transactional memory. In PPoPP '08, pages 237--246, New York, NY, USA, 2008. ACM. Google ScholarDigital Library
- T. Harris and K. Fraser. Language support for lightweight transactions. In OOPSLA '03, pages 388--402, New York, NY, USA, 2003. ACM. Google ScholarDigital Library
- M. Kulkarni, K. Pingali, B. Walter, G. Ramanarayanan, K. Bala, and L. P. Chew. Optimistic parallelism requires abstractions. In PLDI '07, pages 211--222, 2007. Google ScholarDigital Library
- J. R. Larus and R. Rajwar. Transactional Memory. Morgan and Claypool, 2006.Google ScholarCross Ref
- M. Mendez-Lojo, D. Nguyen, D. Prountzos, X. Sui, M. A. Hassan, M. Kulkarni, M. Burtscher, and K. Pingali. Structure-driven optimization for amorphous data-parallel programs. In PPoPP '10, New York, NY, USA, 2010. ACM. Google ScholarDigital Library
- S. S. Mukherjee, S. D. Sharma, M. D. Hill, J. R. Larus, A. Rogers, and J. Saltz. Efficient support for irregular applications on distributed-memory machines. In PPOPP '95, pages 68--79, New York, NY, USA, 1995. ACM. Google ScholarDigital Library
- W. Reid, W. Kelly, and A. Craik. Reasoning about inherent parallelism in modern object-oriented languages. In ACSC '08, pages 27--36, Darlinghurst, Australia, Australia, 2008. Australian Computer Society, Inc. Google ScholarDigital Library
- J. Reinders. Intel threading building blocks. O'Reilly & Associates, Inc., Sebastopol, CA, USA, 2007. Google ScholarDigital Library
- M. C. Rinard and M. S. Lam. The design, implementation, and evaluation of jade. ACM Trans. Program. Lang. Syst., 20(3):483--545, 1998. Google ScholarDigital Library
- T. Usui, R. Behrends, J. Evans, and Y. Smaragdakis. Adaptive locks: Combining transactions and locks for efficient concurrency. In PACT '09, pages 3--14, sept. 2009. Google ScholarDigital Library
Index Terms
- Leveraging data-structure semantics for efficient algorithmic parallelism
Recommendations
Stretching transactional memory
PLDI '09Transactional memory (TM) is an appealing abstraction for programming multi-core systems. Potential target applications for TM, such as business software and video games, are likely to involve complex data structures and large transactions, requiring ...
Stretching transactional memory
PLDI '09: Proceedings of the 30th ACM SIGPLAN Conference on Programming Language Design and ImplementationTransactional memory (TM) is an appealing abstraction for programming multi-core systems. Potential target applications for TM, such as business software and video games, are likely to involve complex data structures and large transactions, requiring ...
On the analytical modeling of concurrency control algorithms for Software Transactional Memories: The case of Commit-Time-Locking
We present an analytical performance modeling approach for concurrency control algorithms in the context of Software Transactional Memories (STMs). We consider a realistic execution pattern where each thread alternates the execution of transactional and ...
Comments