Abstract
Modeling languages propose convenient abstractions and transformations to handle the complexity of today’s embedded systems. Based on the formalism of the Hierarchical State Machine, they enable the expression of hierarchical control parallelism. However, they face two important challenges when it comes to modeling data-intensive applications: no unified approach that also accounts for data-parallel actions and no effective code optimization and generation flows.
We propose a modeling language extended with parallel action semantics and hierarchical indexed-state machines suitable for computationally intensive applications. Together with its formal semantics, we present an optimizing model compiler aiming for the generation of efficient data-parallel implementations.
- Alfred V. Aho, Monica S. Lam, Ravi Sethi, and Jeffrey D. Ullman. 2006. Compilers: Principles, Techniques, and Tools (2nd ed.). Addison-Wesley Longman, Boston, MA. Google Scholar
Digital Library
- Cedric Bastoul. 2004. Code generation in the polyhedral model is easier than you think. In Proceedings of the 13th International Conference on Parallel Architectures and Compilation Techniques (PACT’04). IEEE Computer Society, Washington, DC, 7--16. Google Scholar
Digital Library
- Ganesh Bikshandi, Jia Guo, Daniel Hoeflinger, Gheorghe Almasi, Basilio B. Fraguela, María J. Garzarán, David Padua, and Christoph von Praun. 2006. Programming for parallelism and locality with hierarchically tiled arrays. In Proceedings of the 11th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming (PPoPP’06). ACM, New York, NY, 48--57. Google Scholar
Digital Library
- Pierre Boulet. 2007. Array-OL Revisited, Multidimensional Intensive Signal Processing Specification. Rapport de recherche RR-6113. INRIA.Google Scholar
- Amy Brown and Greg Wilson. 2012. The Architecture Of Open Source Applications. Vol. II. Retrieved from lulu.com.Google Scholar
- Egon Brger, Alessandra Cavarra, and Elvinia Riccobene. 2004. On formalizing UML state machines using ASMs. Inform. Softw. Technol. 46, 5 (2004), 287--292. Google Scholar
Cross Ref
- P. Caspi, D. Pilaud, N. Halbwachs, and J. A. Plaice. 1987. LUSTRE: A declarative language for real-time programming. In Proceedings of the 14th ACM SIGACT-SIGPLAN Symposium on Principles of Programming Languages (POPL’87). ACM, New York, NY, 178--188. Google Scholar
Digital Library
- Manuel M. T. Chakravarty, Roman Leshchinskiy, Simon Peyton Jones, Gabriele Keller, and Simon Marlow. 2007. Data parallel Haskell: A status report. In Proceedings of the 2007 Workshop on Declarative Aspects of Multicore Programming (DAMP’07). ACM, New York, NY, 10--18. Google Scholar
Digital Library
- Barbara Chapman, Gabriele Jost, and Ruud van der Pas. 2007. Using OpenMP: Portable Shared Memory Parallel Programming (Scientific and Engineering Computation). The MIT Press. Google Scholar
Digital Library
- A. Charfi, C. Mraidha, and P. Boulet. 2012. An optimized compilation of UML state machines. In Proceedings of the 2012 IEEE 15th International Symposium on Object/Component/Service-Oriented Real-Time Distributed Computing (ISORC). 172--179. Google Scholar
Digital Library
- Antonio Wendell De Oliveira Rodrigues, Frédéric Guyomarc’H, and Jean-Luc Dekeyser. 2011. Programming massively parallel architectures using MARTE: A case study. In Proceedings of the 2nd Workshop on Model Based Engineering for Embedded Systems Design (M-BED’11) on Date Conference 2011. Grenoble, France.Google Scholar
- Jori Dubrovin. 2006. JUMBALA: An Action anguage for UML State Machines. Technical Report HUT-TCS-A101.Google Scholar
- Kayvon Fatahalian, Daniel Reiter Horn, Timothy J. Knight, Larkhoon Leem, Mike Houston, Ji Young Park, Mattan Erez, Manman Ren, Alex Aiken, William J. Dally, and Pat Hanrahan. 2006. Sequoia: Programming the memory hierarchy. In Proceedings of the 2006 ACM/IEEE Conference on Supercomputing (SC’06). ACM, New York, NY, Article 83. Google Scholar
Digital Library
- Abdoulaye Gamatié. 2009. Designing Embedded Systems with the SIGNAL Programming Language: Synchronous, Reactive Specification (1st ed.). Springer, Berlin. Google Scholar
Digital Library
- Abdoulaye Gamatié, Sébastien Le Beux, Éric Piel, Rabie Ben Atitallah, Anne Etien, Philippe Marquet, and Jean-Luc Dekeyser. 2011. A model-driven design framework for massively parallel embedded systems. ACM Trans. Embed. Comput. Syst. 10, 4, Article 39 (Nov. 2011). Google Scholar
Digital Library
- Eran Gery, David Harel, and Eldad Palachi. 2002. Rhapsody: A complete life-cycle model-based development system. In Integrated Formal Methods, Michael Butler, Luigia Petre, and Kaisa Sere (Eds.). Lecture Notes in Computer Science, Vol. 2335. Springer, Berlin, 1--10. Google Scholar
Digital Library
- David Harel. 1987. Statecharts: A visual formalism for complex systems. Sci. Comput. Program. 8, 3 (1987), 231--274. Google Scholar
Digital Library
- Thomas A. Henzinger and Joseph Sifakis. 2006. The embedded systems design challenge. In FM 2006: Formal Methods, Jayadev Misra, Tobias Nipkow, and Emil Sekerinski (Eds.). Lecture Notes in Computer Science, Vol. 4085. Springer, Berlin, 1--15. Google Scholar
Digital Library
- Nicolas Hili, Christian Fabre, Sophie Dupuy-Chessa, and Stéphane Malfoy. 2012. Efficient embedded system development: A workbench for an integrated methodology. In ERTS2 2012 (2012-02-01). Toulouse, France.Google Scholar
- IEEE754 2008. IEEE Standard for Floating-Point Arithmetic. (Aug. 2008).Google Scholar
- Gilles Kahn. 1974. The semantics of simple language for parallel programming. In IFIP Congress. 471--475.Google Scholar
- Shuang Liu, Yang Liu, Tienne Andr, Christine Choppy, Jun Sun, Bimlesh Wadhwa, and JinSong Dong. 2013. A formal semantics for complete UML state machines with communications. In Integrated Formal Methods, EinarBroch Johnsen and Luigia Petre (Eds.). Lecture Notes in Computer Science, Vol. 7940. Springer, Berlin, 331--346. Google Scholar
Cross Ref
- Ivan Llopard, Albert Cohen, Christian Fabre, and Nicolas Hili. 2014. A parallel action language for embedded applications and its compilation flow. In Proceedings of the 17th International Workshop on Software and Compilers for Embedded Systems (SCOPES’14). ACM, New York, NY, 118--127. Google Scholar
Digital Library
- C. Loeffler, A. Ligtenberg, and George S. Moschytz. 1989. Practical fast 1-D DCT algorithms with 11 multiplications. In Proceedings of the 1989 International Conference on Acoustics, Speech, and Signal Processing, 1989 (ICASSP-89), Vol. 2. 988--991.Google Scholar
Cross Ref
- Erich Mikk, Yassine Lakhnech, Carsta Petersohn, and Michael Siegel. 1997. On formal semantics of statecharts as supported by statemate. In Proceedings of the 2Nd BCS-FACS Conference on Northern Formal Methods (2FACS’97). British Computer Society, Swinton, UK, 12. Google Scholar
Digital Library
- Frank Mueller and Yongpeng Zhang. 2013. Hidp: A hierarchical data parallel language. In Proceedings of the 2013 IEEE/ACM International Symposium on Code Generation and Optimization (CGO) (CGO’13). IEEE Computer Society, Washington, DC, 1--11. Google Scholar
Digital Library
- Object Management Group. 2009. UML Profile for MARTE: Modeling and Analysis of Real-Time Embedded Systems.Google Scholar
- Object Management Group. 2011. OMG Unified Modeling Language, Superstructure, v2.4.1. Technical Report. OMG.Google Scholar
- Object Management Group. 2012. OMG Systems Modeling Language (OMG SysML), Version 1.3.Google Scholar
- Wuxu Peng and S. Puroshothaman. 1991. Data flow analysis of communicating finite state machines. ACM Trans. Program. Lang. Syst. 13, 3 (Jul. 1991), 399--442. Google Scholar
Digital Library
- Gordon D. Plotkin. 2004. A structural approach to operational semantics. J. Log. Algebr. Program. 60--61 (2004), 17--139.Google Scholar
- John C. Reynolds. 1999. Theories of Programming Languages. Cambridge University Press, New York, NY. Google Scholar
Digital Library
- T. Schattkowsky and W. Muller. 2005. Transformation of UML state machines for direct execution. In Proceedings of the IEEE Symposium on Visual Languages and Human-Centric Computing. 117--124. Google Scholar
Digital Library
- Dana Scott. 1971. Toward a Mathematical Semantics for Computer Languages. Technical Report PRG06. OUCL.Google Scholar
- Dirk Seifert. 2008. An Executable Formal Semantics for a UML State Machine Kernel Considering Complex Structured Data. Rapport de recherche.Google Scholar
- Sven Verdoolaege. 2010. isl: An integer set library for the polyhedral model. In Proceedings of the International Congress on Mathematical Software (ICMS’10), Komei Fukuda, Joris van der Hoeven, Michael Joswig, and Nobuki Takayama (Eds.). Springer, Berlin, 299--302. Google Scholar
Digital Library
- K. B. Wheeler, R. C. Murphy, and D. Thain. 2008. Qthreads: An API for programming with millions of lightweight threads. In Proceedings of the IEEE International Symposium on Parallel and Distributed Processing, 2008 (IPDPS’08). 1--8.Google Scholar
Index Terms
From a Formalized Parallel Action Language to Its Efficient Code Generation
Recommendations
A parallel action language for embedded applications and its compilation flow
SCOPES '14: Proceedings of the 17th International Workshop on Software and Compilers for Embedded SystemsThe complexity of Embedded System (ES) development is increasing dramatically. This has several cumulative sources: the intricate combination of data-intensive, computational and control aspects; the ubiquity of parallelism and heterogeneity of modern ...
A Concrete Syntax for UML 2.1 Action Semantics Using +CAL
ICECCS '08: Proceedings of the 13th IEEE International Conference on on Engineering of Complex Computer SystemsSince UML 1.4 (the Unified Modeling Language, version 1.4), executable UML relies on the Precise Action Semantics for UML. The role of the action semantics is to provide the specification of actions. The UML has actions and activities, but no standard ...
Distributed parallel computing with Futhark: a functional language to generate distributed parallel code
ARRAY 2022: Proceedings of the 8th ACM SIGPLAN International Workshop on Libraries, Languages and Compilers for Array ProgrammingIn this paper, we present two proofs-of-concept for distributed-memory parallel approaches based on the Futhark functional programming language. Futhark is an array-based language generating high-performance code for CPU and GPU back-ends, leveraging ...






Comments