%0 Conference Proceedings %T ParT: An Asynchronous Parallel Abstraction for Speculative Pipeline Computations %+ Uppsala University %A Fernandez-Reyes, Kiko %A Clarke, Dave %A Mccain, Daniel, S. %< avec comité de lecture %( Lecture Notes in Computer Science %B 18th International Conference on Coordination Languages and Models (COORDINATION) %C Heraklion, Greece %Y Alberto Lluch Lafuente %Y José Proença %I Springer International Publishing %3 Coordination Models and Languages %V LNCS-9686 %P 101-120 %8 2016-06-06 %D 2016 %R 10.1007/978-3-319-39519-7_7 %Z Computer Science [cs] %Z Computer Science [cs]/Networking and Internet Architecture [cs.NI]Conference papers %X 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. %G English %Z TC 6 %Z WG 6.1 %2 https://inria.hal.science/hal-01631723/document %2 https://inria.hal.science/hal-01631723/file/416253_1_En_7_Chapter.pdf %L hal-01631723 %U https://inria.hal.science/hal-01631723 %~ IFIP-LNCS %~ IFIP %~ IFIP-TC %~ IFIP-WG %~ IFIP-TC6 %~ IFIP-WG6-1 %~ IFIP-COORDINATION %~ IFIP-LNCS-9686