Automata-Based Optimization of Interaction Protocols for Scalable Multicore Platforms

Multicore platforms offer the opportunity for utilizing massively parallel resources. However, programming them is challenging. We need good compilers that optimize commonly occurring synchronization/ interaction patterns. To facilitate optimization, a programming language must convey what needs to be done in a form that leaves a considerably large decision space on how to do it for the compiler/run-time system. Reo is a coordination-inspired model of concurrency that allows compositional construction of interaction protocols as declarative specifications. This form of protocol programming specifies only what needs to be done and leaves virtually all how-decisions involved in obtaining a concrete implementation for the compiler and the run-time system to make, thereby maximizing the potential opportunities for optimization. In contrast, the imperative form of protocol specification in conventional concurrent programming languages, generally, restrict implementation choices and thereby hamper optimization due to overspecification. In this paper, we use the Constraint Automata semantics of Reo protocols as the formal basis for our optimizations. We optimize a generalization of the producer-consumer pattern, by applying CA transformations and prove the correctness of the transforms.

[1]  C. A. R. HOARE,et al.  An axiomatic basis for computer programming , 1969, CACM.

[2]  David Gelernter,et al.  Generative communication in Linda , 1985, TOPL.

[3]  David R. Butenhof Programming with POSIX threads , 1993 .

[4]  Andrew William Roscoe,et al.  The Theory and Practice of Concurrency , 1997 .

[5]  Ernst-Rüdiger Olderog,et al.  Verification of Sequential and Concurrent Programs , 1997, Graduate Texts in Computer Science.

[6]  Farhad Arbab,et al.  Coordination Models and Languages , 1998, Adv. Comput..

[7]  Farhad Arbab,et al.  Reo: A Channel-based Coordination Model for Component Composition , 2005 .

[8]  Christel Baier,et al.  Compositional Semantics of an Actor-Based Language Using Constraint Automata , 2006, COORDINATION.

[9]  Christel Baier,et al.  Modeling component connectors in Reo by constraint automata , 2004, Sci. Comput. Program..

[10]  Joseph Sifakis,et al.  Modeling Heterogeneous Real-time Components in BIP , 2006, Fourth IEEE International Conference on Software Engineering and Formal Methods (SEFM'06).

[11]  Paolo Costa,et al.  The LighTS tuple space framework and its customization for context-aware applications , 2007, Web Intell. Agent Syst..

[12]  Nobuko Yoshida,et al.  Parameterised Multiparty Session Types , 2010, FoSSaCS.

[13]  Farhad Arbab,et al.  Input-output Conformance Testing for Channel-based Service Connectors , 2011, PACO.

[14]  Albert Cohen,et al.  A Mutable Hardware Abstraction to Replace Threads , 2011, LCPC.

[15]  Albert Cohen,et al.  A study of frameworks for collectively achieving the productivity, portability, and adoptability goals of parallel software , 2011 .

[16]  Erik P. de Vink,et al.  Reo + mCRL2 : A framework for model-checking dataflow in service compositions , 2011, Formal Aspects of Computing.

[17]  Farhad Arbab,et al.  Puff, The Magic Protocol , 2011, Formal Modeling: Actors, Open Systems, Biological Systems.

[18]  Gary Brown,et al.  Scribbling Interactions with a Formal Foundation , 2011, ICDCIT.

[19]  Wilhelm Hasselbring,et al.  Space-based multi-core programming in Java , 2011, PPPJ.

[20]  Farhad Arbab,et al.  Overview of Thirty Semantic Formalisms for Reo , 2012, Sci. Ann. Comput. Sci..

[21]  Farhad Arbab,et al.  Modularizing and Specifying Protocols among Threads , 2013, PLACES.

[22]  Alexandra Silva,et al.  A model of context-dependent component connectors , 2009, Sci. Comput. Program..

[23]  Nobuko Yoshida,et al.  Multiparty Session C: Safe Parallel Programming with Message Optimisation , 2012, TOOLS.

[24]  Joseph Sifakis,et al.  A framework for automated distributed implementation of component-based models , 2012, Distributed Computing.

[25]  Alain Bretto,et al.  Hypergraph Theory: An Introduction , 2013 .

[26]  Farhad Arbab,et al.  Reo: A Dataflow Inspired Language for Multicore , 2013, 2013 Data-Flow Execution Models for Extreme Scale Computing.

[27]  Nobuko Yoshida,et al.  Pabble: Parameterised Scribble for Parallel Programming , 2014, 2014 22nd Euromicro International Conference on Parallel, Distributed, and Network-Based Processing.