ABSTRACT
This paper introduces a unified concurrent programming model combining the previously developed Actor Model (AM) and the task-parallel Async-Finish Model (AFM). With the advent of multi-core computers, there is a renewed interest in programming models that can support a wide range of parallel programming patterns. The proposed unified model shows how the divide-and-conquer approach of the AFM and the no-shared mutable state and event-driven philosophy of the AM can be combined to solve certain classes of problems more efficiently and productively than either of the aforementioned models individually. The unified model adds actor creation and coordination to the AFM, while also enabling parallelization within actors. This paper describes two implementations of the unified model as extensions of Habanero-Java and Habanero-Scala. The unified model adds to the foundations of parallel programs, and to the tools available for the programmer to aid in productivity and performance while developing parallel software.
Supplemental Material
Available for Download
The contents of the zip file include a Makefile to allow easy generation of the pdf using the make command. To generate the postscript file required by the conference, run "make final" To generate the submitted pdf which include author names and title in the generated pdf, run "make draft"
- G. Agha. Actors: a model of concurrent computation in distributed systems. MIT Press, Cambridge, MA, USA, 1986. ISBN 0--262-01092--5. Google ScholarDigital Library
- A. Anagnostopoulos, R. Bent, E. Upfal, and P. V. Hentenryck. A simple and deterministic competitive algorithm for online facility location. Inf. Comput., 194: 175--202, November 2004. ISSN 0890--5401. Google ScholarDigital Library
- Z. Budimlić, Burke, Cavé, Knobe, Lowney, Newton, Palsberg, Peixotto, Sarkar, Schlimbach, and Taşırlar}Knobe:CNCZ. Budimlić, M. Burke, V. Cavé, K. Knobe, G. Lowney, R. Newton, J. Palsberg, D. Peixotto, V. Sarkar, F. Schlimbach, and S. Taşırlar. Concurrent Collections. Sci. Program., 18: 203--217, August 2010. ISSN 1058--9244. Google ScholarDigital Library
- V. Cavé, J. Zhao, Y. Guo, and V. Sarkar. Habanero-Java: the New Adventures of Old X10. 9th International Conference on the Principles and Practice of Programming in Java (PPPJ), August 2011. Google ScholarDigital Library
- P. Charles, C. Grothoff, V. Saraswat, C. Donawa, A. Kielstra, K. Ebcioglu, C. von Praun, and V. Sarkar. X10: An Object-Oriented Approach to Non-uniform Cluster Computing. SIGPLAN Not., 40: 519--538, Oct. 2005. ISSN 0362--1340. 10.1145/1094811.1094852. Google ScholarDigital Library
- J. Dedecker, T. Van Cutsem, S. Mostinckx, T. D'Hondt, and W. De Meuter. Ambient-Oriented Programming in AmbientTalk. In Proceedings of the 20th European Conference on Object-Oriented Programming, ECOOP'06, pages 230--254, Berlin, Heidelberg, 2006. Springer-Verlag. ISBN 3--540--35726--2, 978--3--540--35726--1. 10.1007/11785477_16. URL http://dx.doi.org/10.1007/11785477_16. Google ScholarDigital Library
- EPCC. The Java Grande Forum Multi-threaded Benchmarks. URL http://www2.epcc.ed.ac.uk/computing/research_activities/java_grande/threads/s1contents.html.Google Scholar
- A. Georges, D. Buytaert, and L. Eeckhout. Statistically Rigorous Java Performance Evaluation. In Proceedings of the 22nd annual ACM SIGPLAN conference on Object-oriented programming systems and applications, OOPSLA '07, pages 57--76, New York, NY, USA, 2007. ACM. ISBN 978--1--59593--786--5. Google ScholarDigital Library
- M. I. Gordon, W. Thies, and S. Amarasinghe. Exploiting Coarse-Grained Task, Data, and Pipeline Parallelism in Stream Programs. SIGOPS Oper. Syst. Rev., 40: 151--162, October 2006. ISSN 0163--5980. Google ScholarDigital Library
- P. Haller and M. Odersky. Scala Actors: Unifying thread-based and event-based programming. Theoretical Computer Science, 410 (2--3): 202--220, 2009. ISSN 0304--3975. 10.1016/j.tcs.2008.09.019. URL http://www.sciencedirect.com/science/article/pii/S0304397508006695. Distributed Computing Techniques. Google ScholarDigital Library
- Haller, Philipp. chameneos-redux.scala | FishEye: browsing scala-svn, 2011. URL https://codereview.scala-lang.org/fisheye/browse/scala-svn/scala/branches/translucent/docs/examples/actors/chameneos-redux.scala?hb=true.Google Scholar
- C. Hewitt, P. Bishop, and R. Steiger. Artificial Intelligence A Universal Modular ACTOR Formalism for Artificial Intelligence. Proceedings of the 3rd International Joint Conference on Artificial Intelligence, Stanford, CA, August 1973. Google ScholarDigital Library
- Hewitt, Carl and Baker, Henry G. Actors and Continuous Functionals. Technical report, Massachusetts Institute of Technology, Cambridge, MA, USA, February 1978. Google ScholarDigital Library
- Imam, Shams and Sarkar, Vivek. Habanero-Scala: Async-Finish Programming in Scala. In The Third Scala Workshop (Scala Days 2012), April 2012.Google Scholar
- R. K. Karmani, A. Shali, and G. Agha. Actor Frameworks for the JVM Platform: A Comparative Analysis. In Proceedings of the 7th International Conference on Principles and Practice of Programming in Java, PPPJ '09, pages 11--20, New York, NY, USA, 2009. ACM. ISBN 978--1--60558--598--7. 10.1145/1596655.1596658. URL http://doi.acm.org/10.1145/1596655.1596658. Google ScholarDigital Library
- R. Lublinerman, S. Chaudhuri, and P. Cerny. Parallel Programming with Object Assemblies. In Proceedings of the 24th ACM SIGPLAN conference on Object oriented programming systems languages and applications, OOPSLA '09, pages 61--80, New York, NY, USA, 2009. ACM. ISBN 978--1--60558--766-0. 10.1145/1640089.1640095. URL http://doi.acm.org/10.1145/1640089.1640095. Google ScholarDigital Library
- M. S. Miller, E. D. Tribble, and J. Shapiro. Concurrency Among Strangers: Programming in E as Plan Coordination. In Proceedings of the 1st International Conference on Trustworthy Global Computing, TGC'05, pages 195--229, Berlin, Heidelberg, 2005. Springer-Verlag. ISBN 3--540--30007--4, 978--3--540--30007--6. URL http://dl.acm.org/citation.cfm?id=1986262.1986274. Google ScholarDigital Library
- M. Odersky, P. Altherr, V. Cremet, I. Dragos, G. Dubochet, B. Emir, S. Mcdirmid, S. Micheloud, N. Mihaylov, M. Schinz, and et al. An Overview of the Scala Programming Language Second Edition. System, (Section 2): 15--30, 2006.Google Scholar
- OpenMP Architecture Review Board. OpenMP Application Program Interface - Version 3.0 May 2008. URL www.openmp.org/mp-documents/spec30.pdf.Google Scholar
- N. Raja and R. K. Shyamasundar. Actors as a Coordinating Model of Computation. In Proceedings of the 2nd International Andrei Ershov Memorial Conference on Perspectives of System Informatics, pages 191--202. Springer-Verlag, 2004. ISBN 3--540--62064--8. Google ScholarDigital Library
- R. Raman, J. Zhao, V. Sarkar, M. Vechev, and E. Yahav. Efficient Data Race Detection for Async-Finish Parallelism. In Proceedings of the First international conference on Runtime verification, RV'10, pages 368--383, Berlin, Heidelberg, 2010. Springer-Verlag. ISBN 3--642--16611--3, 978--3--642--16611--2. Google ScholarDigital Library
- R. Raman, J. Zhao, V. Sarkar, M. Vechev, and E. Yahav. Scalable and Precise Dynamic Data Race Detection for Structured Parallelism. In PLDI, 2012. Google ScholarDigital Library
- Rettig, Mike. jetlang: Message based concurrency for Java. URL http://code.google.com/p/jetlang/.Google Scholar
- J. Schafer and A. Poetzsch-Heffter. JCoBox: Generalizing Active Objects to Concurrent Components. In Proceedings of the 24th European conference on Object-oriented programming, ECOOP'10, pages 275--299, Berlin, Heidelberg, 2010. Springer-Verlag. ISBN 3--642--14106--4, 978--3--642--14106--5. URL http://dl.acm.org/citation.cfm?id=1883978.1883996. Google ScholarDigital Library
- C. Scholliers, E. Tanter, and W. D. Meuter. Parallel Actor Monitors. In 14th Brazilian Symposium on Programming Languages, 2010.Google Scholar
- J. Shirako, D. M. Peixotto, V. Sarkar, and W. N. Scherer. Phasers: a Unified Deadlock-Free Construct for Collective and Point-to-Point Synchronization. In Proceedings of the 22nd annual international conference on Supercomputing, ICS '08, pages 277--288, New York, NY, USA, 2008. ACM. ISBN 978--1--60558--158--3. Google ScholarDigital Library
- S. Srinivasan and A. Mycroft. Kilim: Isolation-Typed Actors for Java (A Million Actors, Safe Zero-Copy Communication). European Conference on Object Oriented Programming ECOOP 2008, 5142/2008: 104--128, 2008. Google ScholarDigital Library
- S. Taşırlar and V. Sarkar. Data-Driven Tasks and their Implementation. In Proceedings of the International Conference on Parallel Processing (ICPP) 2011, September 2011. Google ScholarDigital Library
- The Scala Programming Language. pingpong.scala. URL http://www.scala-lang.org/node/54.Google Scholar
- W. Thies, M. Karczmarek, and S. P. Amarasinghe. StreamIt: A Language for Streaming Applications. In Computational Complexity, pages 179--196, 2002. Google ScholarDigital Library
- Typesafe Inc. Akka. URL http://akka.io/.Google Scholar
- C. SOTER project. URL http://osl.cs.uiuc.edu/soter/.Google Scholar
- C. Varela and G. Agha. Programming Dynamically Reconfigurable Open Systems with SALSA. ACM SIGPLAN Notices, 36 (12): 20--34, Dec. 2001. ISSN 0362--1340. 10.1145/583960.583964. URL http://doi.acm.org/10.1145/583960.583964. Google ScholarDigital Library
- R. Virding, C. Wikström, M. Williams, and J. Armstrong. Concurrent programming in ERLANG (2nd ed.). Prentice Hall International (UK) Ltd., Hertfordshire, UK, UK, 1996. ISBN 0--13--508301-X. Google ScholarDigital Library
- A. Yonezawa, J. Briot, and E. Shibayama. Object-Oriented Concurrent Programming in ABCL/1. In Conference proceedings on Object-oriented programming systems, languages and applications, OOPLSA '86, pages 258--268, New York, NY, USA, 1986. ACM. ISBN 0--89791--204--7. 10.1145/28697.28722. URL http://doi.acm.org/10.1145/28697.28722. Google ScholarDigital Library
Index Terms
- Integrating task parallelism with actors
Recommendations
Integrating task parallelism with actors
OOPSLA '12This paper introduces a unified concurrent programming model combining the previously developed Actor Model (AM) and the task-parallel Async-Finish Model (AFM). With the advent of multi-core computers, there is a renewed interest in programming models ...
Integrating Asynchronous Task Parallelism with MPI
IPDPS '13: Proceedings of the 2013 IEEE 27th International Symposium on Parallel and Distributed ProcessingEffective combination of inter-node and intra-node parallelism is recognized to be a major challenge for future extreme-scale systems. Many researchers have demonstrated the potential benefits of combining both levels of parallelism, including increased ...
Integrating synchronous and asynchronous paradigms: the Fork95 parallel programming language
PMMP '95: Proceedings of the conference on Programming Models for Massively Parallel ComputersThe SB-PRAM is a lock-step-synchronous, massively parallel multiprocessor currently being built at Saarbrucken University, with up to 4096 RISC-style processing elements and with a (from the programmer's view) physically shared memory of up to SGByte ...
Comments