Abstract
Efficient communication and synchronization is crucial for fine grained parallelism. Libraries providing such features, while indispensable, are difficult to write, and often cannot be tailored or composed to meet the needs of specific users. We introduce reagents, a set of combinators for concisely expressing concurrency algorithms. Reagents scale as well as their hand-coded counterparts, while providing the composability existing libraries lack.
- H. Attiya and E. Hillel. Highly-concurrent multi-word synchronization. In ICDCN, 2008. Google Scholar
Digital Library
- D. Cederman and P. Tsigas. Supporting lock-free composition of concurrent data objects. In CF, 2010. Google Scholar
Digital Library
- D. Dice, O. Shalev, and N. Shavit. Transactional locking II. DISC, 2006. Google Scholar
Digital Library
- K. Donnelly and M. Fluet. Transactional events. JFP, 18 (5&6): 649--706, Oct. 2008. Google Scholar
Digital Library
- P. Felber, V. Gramoli, and R. Guerraoui. Elastic transactions. In DISC, 2009. Google Scholar
Digital Library
- C. Fournet and G. Gonthier. The reflexive chemical abstract machine and the join-calculus. In POPL, 1996. Google Scholar
Digital Library
- K. Fraser and T. Harris. Concurrent programming without locks. TOCS, 25 (2), May 2007. Google Scholar
Digital Library
- T. Harris, S. Marlow, S. Peyton-Jones, and M. Herlihy. Composable memory transactions. In PPOPP, Aug. 2005. Google Scholar
Digital Library
- D. Hendler, N. Shavit, and L. Yerushalmi. A scalable lock-free stack algorithm. In SPAA, Jan. 2004. Google Scholar
Digital Library
- D. Hendler, I. Incze, N. Shavit, and M. Tzafrir. Flat combining and the synchronization-parallelism tradeoff. In SPAA, 2010. Google Scholar
Digital Library
- M. Herlihy and N. Shavit. The Art of Multiprocessor Programming. Morgan Kaufmann, 2008. Google Scholar
Digital Library
- M. Herlihy, V. Luchangco, M. Moir, and W. Scherer III. Software transactional memory for dynamic-sized data structures. In PODC, 2003. ISBN 1581137087. Google Scholar
Digital Library
- M. P. Herlihy and J. M. Wing. Linearizability: a correctness condition for concurrent objects. TOPLAS, 12 (3): 463--492, 1990. Google Scholar
Digital Library
- J. Hughes. Generalising monads to arrows. Science of computer programming, 37 (1--3): 67--111, May 2000. Google Scholar
Digital Library
- J. Larus and R. Rajwar. Transactional memory. Morgan and Claypool, 2006.Google Scholar
Cross Ref
- M. Lesani and J. Palsberg. Communicating memory transactions. In PPOPP, 2011. Google Scholar
Digital Library
- V. Luchangco and V. Marathe. Transaction communicators: enabling cooperation among concurrent transactions. In PPOPP, 2011. Google Scholar
Digital Library
- V. Luchangco, M. Moir, and N. Shavit. Nonblocking k-compare-single-swap. In SPAA, Dec. 2003. Google Scholar
Digital Library
- J. Mellor-Crummey and M. Scott. Algorithms for scalable synchronization on shared-memory multiprocessors. TOCS, 9 (1): 21--65, 1991. Google Scholar
Digital Library
- M. M. Michael and M. L. Scott. Simple, fast, and practical non-blocking and blocking concurrent queue algorithms. In PODC, 1996. Google Scholar
Digital Library
- S. Peyton Jones and P. Wadler. Imperative functional programming. In POPL, 1993. Google Scholar
Digital Library
- J. Reppy. CML: a higher order concurrent language. In PLDI, 1991. Google Scholar
Digital Library
- J. Reppy, C. Russo, and Y. Xiao. Parallel concurrent ML. In ICFP, Aug. 2009. Google Scholar
Digital Library
- W. Scherer III and M. Scott. Nonblocking concurrent data structures with condition synchronization. In DISC. Springer, 2004.Google Scholar
- N. Shavit and D. Touitou. Software transactional memory. Distributed Computing, 10 (2): 99--116, Feb. 1997.Google Scholar
Cross Ref
- N. Shavit and D. Touitou. Elimination trees and the construction of pools and stacks. Theory of Computing Systems, 30: 645--670, 1997.Google Scholar
Digital Library
- Y. Smaragdakis, A. Kay, R. Behrends, and M. Young. Transactions with isolation and cooperation. In OOPSLA, 2007. Google Scholar
Digital Library
- R. Treiber. Systems programming: Coping with parallelism. Technical report, IBM Almaden Research Center, 1986.Google Scholar
- A. Turon and C. V. Russo. Scalable Join Patterns. In OOPSLA, 2011. Google Scholar
Digital Library
- P. Wadler. The essence of functional programming. In POPL, 1992. Google Scholar
Digital Library
Index Terms
Reagents: expressing and composing fine-grained concurrency
Recommendations
Reagents: expressing and composing fine-grained concurrency
PLDI '12: Proceedings of the 33rd ACM SIGPLAN Conference on Programming Language Design and ImplementationEfficient communication and synchronization is crucial for fine grained parallelism. Libraries providing such features, while indispensable, are difficult to write, and often cannot be tailored or composed to meet the needs of specific users. We ...
Layout-sensitive language extensibility with SugarHaskell
Haskell '12: Proceedings of the 2012 Haskell SymposiumProgrammers need convenient syntax to write elegant and concise programs. Consequently, the Haskell standard provides syntactic sugar for some scenarios (e.g., do notation for monadic code), authors of Haskell compilers provide syntactic sugar for more ...
Layout-sensitive language extensibility with SugarHaskell
Haskell '12Programmers need convenient syntax to write elegant and concise programs. Consequently, the Haskell standard provides syntactic sugar for some scenarios (e.g., do notation for monadic code), authors of Haskell compilers provide syntactic sugar for more ...







Comments