Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
research-article

Sequentially Constructive Concurrency—A Conservative Extension of the Synchronous Model of Computation

Published: 28 July 2014 Publication History

Abstract

Synchronous languages ensure determinate concurrency but at the price of restrictions on what programs are considered valid, or constructive. Meanwhile, sequential languages such as C and Java offer an intuitive, familiar programming paradigm but provide no guarantees with regard to determinate concurrency. The sequentially constructive (SC) model of computation (MoC) presented here harnesses the synchronous execution model to achieve determinate concurrency while taking advantage of familiar, convenient programming paradigms from sequential languages.
In essence, the SC MoC extends the classical synchronous MoC by allowing variables to be read and written in any order and multiple times, as long as the sequentiality expressed in the program provides sufficient scheduling information to rule out race conditions. This allows to use programming patterns familiar from sequential programming, such as testing and later setting the value of a variable, which are forbidden in the standard synchronous MoC. The SC MoC is a conservative extension in that programs considered constructive in the common synchronous MoC are also SC and retain the same semantics. In this article, we investigate classes of shared variable accesses, define SC-admissible scheduling as a restriction of “free scheduling,” derive the concept of sequential constructiveness, and present a priority-based scheduling algorithm for analyzing and compiling SC programs efficiently.

References

[1]
Joaquín Aguado, Michael Mendler, Reinhard von Hanxleden, and Insa Fuhrmann. 2014. Grounding synchronous deterministic concurrency in sequential programming. In Proceedings of the 23rd European Symposium on Programming (ESOP'14). Lecture Notes in Computer Science, vol. 8410, Springer, 229--248.
[2]
Sidharta Andalam, Partha Roop, Alain Girault, and Claus Traulsen. 2009. PRET-C: A new language for programming precision timed architectures. In Proceedings of the Workshop on Reconciling Performance with Predictability (RePP'09), Embedded Systems Week.
[3]
Sidharta Andalam, Partha S. Roop, and Alain Girault. 2010. Deterministic, predictable and light-weight multithreading using PRET-C. In Proceedings of the Conference on Design, Automation and Test in Europe (DATE'10). 1653--1656.
[4]
Charles André. 1996. SyncCharts: A visual representation of reactive behaviors. Technical Report RR 95--52, rev. RR 96--56. I3S, INRIA, Sophia-Antipolis, France.
[5]
Andrew W. Appel. 1998. SSA is functional programming. SIGPLAN Not. 33, 4 (1998), 17--20.
[6]
Albert Benveniste, Paul Caspi, Stephen A. Edwards, Nicolas Halbwachs, Paul Le Guernic, and Robert de Simone. 2003. The synchronous languages twelve years later. Proc. IEEE, (Special Issue on Embedded Systems), 91. IEEE, Los Alamitos, CA, 64--83.
[7]
Gérard Berry. 2000. The foundations of Esterel. In Proof, Language, and Interaction: Essays in Honour of Robin Milner, Gordon Plotkin, Colin Stirling, and Mads Tofte (Eds.), MIT Press, Cambridge, MA, 425--454.
[8]
Gérard Berry. 2002. The Constructive Semantics of Pure Esterel. Draft Book, Version 3.0, Centre de Mathématiques Appliqées, Ecole des Mines de Paris and INRIA, Sophia-Antipolis CDX, France.
[9]
Frédéric Boussinot. 1991. Reactive C: An extension of C to program reactive systems. Softw. Pract. Exper. 21, 4 (1991), 401--428.
[10]
Frédéric Boussinot. 1998. SugarCubes Implementation of Causality. Research Report RR-3487. INRIA.
[11]
Frédéric Boussinot. 2006. FairThreads: Mixing cooperative and preemptive threads in C. Concur. Computat. Pract. Exp. 18, 5 (2006), 445--469.
[12]
Janusz A. Brzozowski and Carl-Johan H. Seger. 1995. Asynchronous Circuits. Springer-Verlag, New York.
[13]
Paul Caspi, Jean-Louis Colaço, Léonard Gérard, Marc Pouzet, and Pascal Raymond. 2009. Synchronous objects with scheduling policies: Introducing safe shared memory in Lustre. In Proceedings of the ACM International Conference on Languages, Compilers, and Tools for Embedded Systems (LCTES'09). ACM, 11--20.
[14]
Jean-Louis Colaço, Grégoire Hamon, and Marc Pouzet. 2006. Mixing signals and modes in synchronous data-flow systems. In Proceedings of the ACM International Conference on Embedded Software (EMSOFT'06). ACM, 73--82.
[15]
Jean-Louis Colaço, Bruno Pagano, and Marc Pouzet. 2005. A conservative extension of synchronous data-flow with state machines. In Proceedings of the ACM International Conference on Embedded Software (EMSOFT'05). ACM, New York, NY, 173--182.
[16]
Stephen A. Edwards. 2003. Tutorial: Compiling concurrent languages for sequential processors. ACM Trans. Desi. Autom. Electron. Syst. 8, 2 (2003), 141--187.
[17]
Jeanne Ferrante, Karl J. Ottenstein, and Joe D. Warren. 1987. The program dependence graph and its use in optimization. ACM Trans. Program. Lang. Syst. 9, 3 (1987), 319--349.
[18]
Mike Gemünde, Jens Brandt, and Klaus Schneider. 2013. Clock refinement in imperative synchronous languages. EURASIP J. Emb. Syst. 3, (2013).
[19]
Nicolas Halbwachs, Paul Caspi, Pascal Raymond, and Daniel Pilaud. 1991. The synchronous data-flow programming language Lustre. Proc. IEEE 79, 9 (1991), 1305--1320.
[20]
Per Brinch Hansen. 1999. Java's insecure parallelism. SIGPLAN Not. 34, 4 (1999), 38--45.
[21]
David Harel. 1987. Statecharts: A visual formalism for complex systems. Sci. Comput. Program. 8, 3 (1987), 231--274.
[22]
C. A. R. Hoare. 1985. Communicating Sequential Processes. Prentice Hall, Upper Saddle River, NJ.
[23]
Robert M. Keller. 1975. A fundamental theorem of asynchronous parallel computation. In Parallel Processing, Tse-yun Feng (Ed.), Lecture Notes in Computer Science, vol. 24, Springer, Berlin, Heidelberg, 102--112.
[24]
Lindsey Kuper, Aaron Turon, Neelakantan R. Krishnaswami, and Ryan R. Newton. 2014. Freeze after writing: Quasi-deterministic parallel programming with LVars. In Proceedings of the 41st Symposium on Principles of Programming Languages (POPL'14). ACM, New York, 257--270.
[25]
Leslie Lamport. 1978. Time, clocks, and the ordering of events in a distributed system. Commun. ACM 21, 7 (July 1978), 558--565.
[26]
Luciano Lavagno and Ellen Sentovich. 1999. ECL: A specification environment for system-level design. In Proceedings of the 36th ACM/IEEE Conference on Design Automation (DAC'99). ACM Press, New York, NY, 511--516.
[27]
Paul Le Guernic, Thierry Goutier, Michel Le Borgne, and Claude Le Maire. 1991. Programming real time applications with SIGNAL. Proc. IEEE 79, 9 (1991), 1321--1336.
[28]
Edward A. Lee. 2006. The problem with threads. IEEE Comput. 39, 5 (2006), 33--42.
[29]
Alan Leung, Manish Gupta, Yuvraj Agarwal, Rajesh Gupta, Ranjit Jhala, and Sorin Lerner. 2012. Verifying GPU kernels by test amplification. In Proceedings of the 33rd ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI'12). ACM, New York, 383--394.
[30]
Sharad Malik. 1994. Analysis of cyclic combinational circuits. IEEE Trans. Comput.-Aid. Des. Integr. Circuits Syst. 13, 7 (1994), 950--956.
[31]
Louis Mandel, Cédric Pasteur, and Marc Pouzet. 2013. Time refinement in a functional synchronous language. In Proceedings of the ACM SIGPLAN International Symposium on Principles and Practice of Declarative Programming (PPDP'13). ACM, New York, NY, 169--180.
[32]
Michael Mendler, Thomas R. Shiple, and Gérard Berry. 2012. Constructive Boolean circuits and the exactness of timed ternary simulation. Formal Methods Syst. Des. 40, 3 (2012), 283--329.
[33]
R. Milner. 1989. Communication and Concurrency. Prentice Hall.
[34]
Amir Pnueli and M. Shalev. 1991. What is in a step: On the semantics of statecharts. In Proceedings of the International Conference on Theoretical Aspects of Computer Software (TACS'91). Springer, 244--264.
[35]
Dumitru Potop-Butucaru, Stephen A. Edwards, and Gérard Berry. 2007. Compiling Esterel. Springer.
[36]
Marc Pouzet and Pascal Raymond. 2010. Modular static scheduling of synchronous data-flow networks - An efficient symbolic representation. Design Autom. Embd. Syst. 14, 3 (2010), 165--192.
[37]
Francisco Sant'Anna, Noemi Rodriguez, Roberto Ierusalimschy, Olaf Landsiedel, and Philippas Tsigas. 2013. Safe system-level concurrency on resource-constrained nodes. In Proceedings of the 11th ACM Conference on Embedded Networked Sensor Systems (SenSys'13). ACM, New York, NY, Article 11, 14 pages.
[38]
Klaus Schneider. 2002. Proving the equivalence of microstep and macrostep semantics. In Proceedings of the 15th International Conference on Theorem Proving in Higher Order Logics (TPHOLs'02). Springer-Verlag, Berlin Heidlberg, 314--331.
[39]
Klaus Schneider, Jens Brandt, Tobias Schüle, and Thomas Türk. 2005. Improving constructiveness in code generators. In Proceedings of the International Workshop on Synchronous Languages, Applications, and Programming (SLAP'05). Florence Maraninchi, Marc Pouzet, and Valérie Roy (Eds.), Electronic Notes in Theoretical Computer Science, Edinburgh, 1--19.
[40]
Jacob T. Schwartz. 1980. Ultracomputers. ACM Trans. Program. Lang. Syst. 2, 4 (1980), 484--521.
[41]
Thomas R. Shiple, Gérard Berry, and Hervé Touati. 1996. Constructive analysis of cyclic circuits. In Proceedings of the European Design and Test Conference (ED&TC'96). IEEE Computer Society Press, Los Alamitos, CA, 328--333.
[42]
Olivier Tardieu and Stephen A. Edwards. 2006. Scheduling-independent threads and exceptions in SHIM. In Proceedings of the International Conference on Embedded Software (EMSOFT'06). ACM, 142--151.
[43]
Robert E. Tarjan. 1972. Depth-first search and linear graph algorithms. SIAM J. Comput. 1, 2 (1972), 146--160.
[44]
Martin Vechev, Eran Yahav, Raghavan Raman, and Vivek Sarkar. 2010. Automatic verification of determinism for structured parallel programs. In Proceeding of the 17th International Symposium on Static Analysis (SAS'10), R. Cousot and M. Martel (Eds.), 6337, Lecture Notes in Computer Sciences Springer, 455--471.
[45]
Reinhard von Hanxleden. 2009. SyncCharts in C—A proposal for light-weight, deterministic concurrency. In Proceedings of the International Conference on Embedded Software (EMSOFT'09). ACM, 225--234.
[46]
Reinhard von Hanxleden, Björn Duderstadt, Christian Motika, Steven Smyth, Michael Mendler, Joaquín Aguado, Stephen Mercer, and Owen O'Brien. 2014. SCCharts: Sequentially constructive statecharts for safety-critical applications. In Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI'14). ACM.
[47]
Reinhard von Hanxleden, Michael Mendler, Joaquín Aguado, Björn Duderstadt, Insa Fuhrmann, Christian Motika, Stephen Mercer, and Owen O'Brien. 2013a. Sequentially constructive concurrency—A conservative extension of the synchronous model of computation. In Proceedings of the Design, Automation and Test in Europe Conference (DATE'13). IEEE, 581--586.
[48]
Reinhard von Hanxleden, Michael Mendler, Joaquín Aguado, Björn Duderstadt, Insa Fuhrmann, Christian Motika, Stephen Mercer, Owen O'Brien, and Partha Roop. 2013b. Sequentially constructive concurrency—A conservative extension of the synchronous model of computation. Technical Report 1308. Christian-Albrechts-Universität zu Kiel, Department of Computer Science. ISSN 2192-6247.
[49]
Eugene Yip, Partha S Roop, Morteza Biglari-Abhari, and Alain Girault. 2013. Programming and timing analysis of parallel programs on multicores. In Proceedings of the 13th International Conference on Application of Concurrency to System Design (ACSD). 167--176.
[50]
Fang Yu, Shun-Ching Yang, Farn Wang, Guan-Cheng Chen, and Che-Chang Chan. 2012. Symbolic consistency checking of OpenMp parallel programs. In Proceedings of the 13th ACM International Conference on Languages, Compilers, Tools and Theory for Embedded Systems (LCTES'12). ACM, 139--148.
[51]
Tomofumi Yuki, Paul Feautrier, Sanjay Rajopadye, and Vijay Saraswat. 2013. Array dataflow analysis for polyhedral X10 programs. In Proceedings of the 18th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming (PPoPP'13). ACM, New York, 23--34.

Cited By

View all
  • (2024)Synchronised Shared Memory and Model CheckingACM Transactions on Embedded Computing Systems10.1145/362618823:5(1-30)Online publication date: 14-Aug-2024
  • (2024)The Sparse Synchronous Model on Real HardwareACM Transactions on Embedded Computing Systems10.1145/357292023:5(1-30)Online publication date: 14-Aug-2024
  • (2024)From Lustre to Graphical Models and SCChartsACM Transactions on Embedded Computing Systems10.1145/354497323:5(1-28)Online publication date: 14-Aug-2024
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Transactions on Embedded Computing Systems
ACM Transactions on Embedded Computing Systems  Volume 13, Issue 4s
Special Issue on Real-Time and Embedded Technology and Applications, Domain-Specific Multicore Computing, Cross-Layer Dependable Embedded Systems, and Application of Concurrency to System Design (ACSD'13)
July 2014
571 pages
ISSN:1539-9087
EISSN:1558-3465
DOI:10.1145/2601432
Issue’s Table of Contents
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than the author(s) must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected].

Publisher

Association for Computing Machinery

New York, NY, United States

Journal Family

Publication History

Published: 28 July 2014
Accepted: 01 February 2014
Received: 01 October 2013
Published in TECS Volume 13, Issue 4s

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. Concurrency
  2. Esterel
  3. constructiveness
  4. determinacy
  5. determinism
  6. embedded systems
  7. reactive systems
  8. synchronous languages

Qualifiers

  • Research-article
  • Research
  • Refereed

Funding Sources

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)9
  • Downloads (Last 6 weeks)1
Reflects downloads up to 27 Jan 2025

Other Metrics

Citations

Cited By

View all
  • (2024)Synchronised Shared Memory and Model CheckingACM Transactions on Embedded Computing Systems10.1145/362618823:5(1-30)Online publication date: 14-Aug-2024
  • (2024)The Sparse Synchronous Model on Real HardwareACM Transactions on Embedded Computing Systems10.1145/357292023:5(1-30)Online publication date: 14-Aug-2024
  • (2024)From Lustre to Graphical Models and SCChartsACM Transactions on Embedded Computing Systems10.1145/354497323:5(1-28)Online publication date: 14-Aug-2024
  • (2022)Arbitrarily Parallelizable Code: A Model of Computation Evaluated on a Message-Passing Many-Core SystemComputers10.3390/computers1111016411:11(164)Online publication date: 18-Nov-2022
  • (2022)Synchronized Shared Memory and Black-box Procedural Abstraction: Towards a Formal Semantics of BlechACM Transactions on Embedded Computing Systems10.1145/3571585Online publication date: 18-Nov-2022
  • (2021)Synchronised Shared Memory and Model Checking: A Proof of Concept2021 Forum on specification & Design Languages (FDL)10.1109/FDL53530.2021.9568373(01-08)Online publication date: 8-Sep-2021
  • (2020)HipHop.js: (A)Synchronous reactive web programmingProceedings of the 41st ACM SIGPLAN Conference on Programming Language Design and Implementation10.1145/3385412.3385984(533-545)Online publication date: 6-Jun-2020
  • (2020)The Sparse Synchronous Model2020 Forum for Specification and Design Languages (FDL)10.1109/FDL50818.2020.9232938(1-8)Online publication date: 15-Sep-2020
  • (2019)Polychronous automata and their use for formal validation of AADL modelsFrontiers of Computer Science: Selected Publications from Chinese Universities10.1007/s11704-017-6134-513:4(677-697)Online publication date: 1-Aug-2019
  • (2019)Denotational fixed-point semantics for constructive scheduling of synchronous concurrencyActa Informatica10.1007/s00236-015-0238-x52:4-5(393-442)Online publication date: 2-Jan-2019
  • Show More Cited By

View Options

Login options

Full Access

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media