ParT: An Asynchronous Parallel Abstraction for Speculative Pipeline Computations

  • Kiko Fernandez-ReyesEmail author
  • Dave Clarke
  • Daniel S. McCain
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 9686)


The ubiquity of multicore computers has forced programming language designers to rethink how languages express parallelism and concurrency. This has resulted in new language constructs and new combinations or revisions of existing constructs. In this line, we extended the programming languages Encore (actor-based), and Clojure (functional) with an asynchronous parallel abstraction called ParT, a data structure that can dually be seen as a collection of asynchronous values (integrating with futures) or a handle to a parallel computation, plus a collection of combinators for manipulating the data structure. The combinators can express parallel pipelines and speculative parallelism. This paper presents a typed calculus capturing the essence of ParT, abstracting away from details of the Encore and Clojure programming languages. The calculus includes tasks, futures, and combinators similar to those of Orc but implemented in a non-blocking fashion. Furthermore, the calculus strongly mimics how ParT is implemented, and it can serve as the basis for adaptation of ParT into different languages and for further extensions.


  1. 1.
    AlTurki, M., Meseguer, J.: Dist-Orc: A rewriting-based distributed implementation of Orc with formal analysis. In: Ölveczky, P.C., (ed.) Proceedings First International Workshop on Rewriting Techniques for Real-Time Systems, RTRTS 2010, 6–9 April, 2010, vol. 36 of EPTCS, pp. 26–45. Longyearbyen, Norway (2010)Google Scholar
  2. 2.
    Brandauer, S., et al.: Parallel objects for multicores: a glimpse at the parallel language encore. In: Bernardo, M., Johnsen, E.B. (eds.) Formal Methods for Multicore Programming. LNCS, pp. 1–56. Springer, Switzerland (2015)Google Scholar
  3. 3.
    Campos, M.D., Barbosa, L.S.: BarbosaImplementation of an orchestration language as a haskell domain specific language. Electr. Notes Theor. Comput. Sci. 255, 45–64 (2009)CrossRefGoogle Scholar
  4. 4.
    Chambers, C., Raniwala, A., Perry, F., Adams, S., Henry, R.R., Bradshaw, R., Weizenbaum, N.: Flumejava: Easy, efficient data-parallel pipelines. In: Proceedings of the 31st ACM SIGPLAN Conference on Programming Language Design and Implementation, PLDI 2010, pp. 363–375, New York, NY, USA. ACM (2010)Google Scholar
  5. 5.
    Clarke, D., Wrigstad, T.: Vats: a safe, reactive storage abstraction. In: Ábrahám, E., Bonsangue, M., Johnsen, E.B. (eds.) Theory and Practice of Formal Methods. LNCS, vol. 9660, pp. 140–154. Springer, Switzerland (2016)CrossRefGoogle Scholar
  6. 6.
    Frigo, M., Leiserson, C.E., Randall, K.H.: The implementation of the Cilk-5 multithreaded language. In: Davidson, J.W., Cooper, K.D., Berman, A.M., (eds.) Proceedings of the ACM SIGPLAN 1998 Conference on Programming Language Design and Implementation (PLDI), pp. 212–223. ACM, Montreal, 17–19 June 1998Google Scholar
  7. 7.
    Robert Jr., R.H.: Multilisp: A language for concurrent symbolic computation. ACM Trans. Program. Lang. Syst. 7(4), 501–538 (1985)CrossRefzbMATHGoogle Scholar
  8. 8.
    Hickey, R.: The clojure programming language. In: Brichau, J. (ed.) Proceedings of the 2008 Symposium on Dynamic Languages, DLS 2008, p. 1. ACM, Paphos, Cyprus (2008)Google Scholar
  9. 9.
    Imam, S., Sarkar, V.: The Eureka programming model for speculative task parallelism. In: Boyland, J.T. (ed.) 29th European Conference on Object-Oriented Programming, ECOOP 2015, vol. 37 of LIPIcs, pp. 421–444, Schloss Dagstuhl - Leibniz-Zentrum fuer Informatik. Prague, Czech Republic, 5–10 July 2015Google Scholar
  10. 10.
    Peyton Jones, S.: Harnessing the multicores: nested data parallelism in haskell. In: Ramalingam, G. (ed.) APLAS 2008. LNCS, vol. 5356, p. 138. Springer, Heidelberg (2008)CrossRefGoogle Scholar
  11. 11.
    Kitchin, D.E., Cook, W.R., Misra, J.: A language for task orchestration and its semantic properties. In: Baier, C., Hermanns, H. (eds.) CONCUR 2006. LNCS, vol. 4137, pp. 477–491. Springer, Heidelberg (2006)CrossRefGoogle Scholar
  12. 12.
    Kitchin, D., Quark, A., Cook, W., Misra, J.: The Orc programming language. In: Lee, D., Lopes, A., Poetzsch-Heffter, A. (eds.) FMOODS 2009. LNCS, vol. 5522, pp. 1–25. Springer, Heidelberg (2009)CrossRefGoogle Scholar
  13. 13.
    Launchbury, J., Elliott, T.: Concurrent orchestration in haskell. In: Gibbons, J., (ed.) Proceedings of the 3rd ACM SIGPLAN Symposium on Haskell, Haskell 2010, pp. 79–90. ACM, Baltimore, MD, USA, 30 September 2010Google Scholar
  14. 14.
    Martí-Oliet, N., Meseguer, J.: Rewriting logic: roadmap and bibliography. Theor. Comput. Sci. 285(2), 121–154 (2002)MathSciNetCrossRefzbMATHGoogle Scholar
  15. 15.
    McCain, D.: Parallel combinators for the Encore programming language. Master’s thesis, Uppsala University (2016)Google Scholar
  16. 16.
    Odersky, M., Spoon, L., Venners, B.: Programming in Scala: A Comprehensive Step-by-step Guide, 1st edn. Artima Incorporation, USA (2008)Google Scholar
  17. 17.
    Peierls, T., Goetz, B., Bloch, J., Bowbeer, J., Lea, D., Holmes, D.: Java Concurrency in Practice. Addison-Wesley Professional, Boston (2005)Google Scholar
  18. 18.
    Prokopec, A., Bagwell, P., Rompf, T., Odersky, M.: A generic parallel collection framework. In: Jeannot, E., Namyst, R., Roman, J. (eds.) Euro-Par 2011, Part II. LNCS, vol. 6853, pp. 136–147. Springer, Heidelberg (2011)CrossRefGoogle Scholar
  19. 19.
    Prokopec, A., Miller, H., Schlatter, T., Haller, P., Odersky, M.: FlowPools: a lock-free deterministic concurrent dataflow abstraction. In: Kasahara, H., Kimura, K. (eds.) LCPC 2012. LNCS, vol. 7760, pp. 158–173. Springer, Heidelberg (2013)CrossRefGoogle Scholar
  20. 20.
    Syme, D., Petricek, T., Lomov, D.: The F# asynchronous programming model. In: Rocha, R., Launchbury, J. (eds.) PADL 2011. LNCS, vol. 6539, pp. 175–189. Springer, Heidelberg (2011)CrossRefGoogle Scholar
  21. 21.
    Wright, A.K., Felleisen, M.: A syntactic approach to type soundness. Inf. Comput. 115(1), 38–94 (1994)MathSciNetCrossRefzbMATHGoogle Scholar

Copyright information

© IFIP International Federation for Information Processing 2016

Authors and Affiliations

  • Kiko Fernandez-Reyes
    • 1
    Email author
  • Dave Clarke
    • 1
  • Daniel S. McCain
    • 1
  1. 1.Department of Information TechnologyUppsala UniversityUppsalaSweden

Personalised recommendations