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 ScholarDigital Library
- D. Cederman and P. Tsigas. Supporting lock-free composition of concurrent data objects. In CF, 2010. Google ScholarDigital Library
- D. Dice, O. Shalev, and N. Shavit. Transactional locking II. DISC, 2006. Google ScholarDigital Library
- K. Donnelly and M. Fluet. Transactional events. JFP, 18 (5&6): 649--706, Oct. 2008. Google ScholarDigital Library
- P. Felber, V. Gramoli, and R. Guerraoui. Elastic transactions. In DISC, 2009. Google ScholarDigital Library
- C. Fournet and G. Gonthier. The reflexive chemical abstract machine and the join-calculus. In POPL, 1996. Google ScholarDigital Library
- K. Fraser and T. Harris. Concurrent programming without locks. TOCS, 25 (2), May 2007. Google ScholarDigital Library
- T. Harris, S. Marlow, S. Peyton-Jones, and M. Herlihy. Composable memory transactions. In PPOPP, Aug. 2005. Google ScholarDigital Library
- D. Hendler, N. Shavit, and L. Yerushalmi. A scalable lock-free stack algorithm. In SPAA, Jan. 2004. Google ScholarDigital Library
- D. Hendler, I. Incze, N. Shavit, and M. Tzafrir. Flat combining and the synchronization-parallelism tradeoff. In SPAA, 2010. Google ScholarDigital Library
- M. Herlihy and N. Shavit. The Art of Multiprocessor Programming. Morgan Kaufmann, 2008. Google ScholarDigital 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 ScholarDigital Library
- M. P. Herlihy and J. M. Wing. Linearizability: a correctness condition for concurrent objects. TOPLAS, 12 (3): 463--492, 1990. Google ScholarDigital Library
- J. Hughes. Generalising monads to arrows. Science of computer programming, 37 (1--3): 67--111, May 2000. Google ScholarDigital Library
- J. Larus and R. Rajwar. Transactional memory. Morgan and Claypool, 2006.Google ScholarCross Ref
- M. Lesani and J. Palsberg. Communicating memory transactions. In PPOPP, 2011. Google ScholarDigital Library
- V. Luchangco and V. Marathe. Transaction communicators: enabling cooperation among concurrent transactions. In PPOPP, 2011. Google ScholarDigital Library
- V. Luchangco, M. Moir, and N. Shavit. Nonblocking k-compare-single-swap. In SPAA, Dec. 2003. Google ScholarDigital Library
- J. Mellor-Crummey and M. Scott. Algorithms for scalable synchronization on shared-memory multiprocessors. TOCS, 9 (1): 21--65, 1991. Google ScholarDigital Library
- M. M. Michael and M. L. Scott. Simple, fast, and practical non-blocking and blocking concurrent queue algorithms. In PODC, 1996. Google ScholarDigital Library
- S. Peyton Jones and P. Wadler. Imperative functional programming. In POPL, 1993. Google ScholarDigital Library
- J. Reppy. CML: a higher order concurrent language. In PLDI, 1991. Google ScholarDigital Library
- J. Reppy, C. Russo, and Y. Xiao. Parallel concurrent ML. In ICFP, Aug. 2009. Google ScholarDigital 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 ScholarCross Ref
- N. Shavit and D. Touitou. Elimination trees and the construction of pools and stacks. Theory of Computing Systems, 30: 645--670, 1997.Google ScholarDigital Library
- Y. Smaragdakis, A. Kay, R. Behrends, and M. Young. Transactions with isolation and cooperation. In OOPSLA, 2007. Google ScholarDigital 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 ScholarDigital Library
- P. Wadler. The essence of functional programming. In POPL, 1992. Google ScholarDigital Library
Index Terms
- Reagents: expressing and composing fine-grained concurrency
Recommendations
Reagents: expressing and composing fine-grained concurrency
PLDI '12Efficient 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 ...
Idioms are Oblivious, Arrows are Meticulous, Monads are Promiscuous
We revisit the connection between three notions of computation: Moggi s monads, Hughes s arrows and McBride and Paterson s idioms (also called applicative functors). We show that idioms are equivalent to arrows that satisfy the type isomorphism A B 1 (A ...
Handlers for Non-Monadic Computations
IFL '17: Proceedings of the 29th Symposium on the Implementation and Application of Functional Programming LanguagesAlgebraic effects and handlers are a convenient method for structuring monadic effects with primitive effectful operations and separating the syntax from the interpretation of these operations. However, the scope of conventional handlers are somewhat ...
Comments