skip to main content
research-article

From a Formalized Parallel Action Language to Its Efficient Code Generation

Authors Info & Claims
Published:16 January 2017Publication History
Skip Abstract Section

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.

References

  1. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  2. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  3. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  4. Pierre Boulet. 2007. Array-OL Revisited, Multidimensional Intensive Signal Processing Specification. Rapport de recherche RR-6113. INRIA.Google ScholarGoogle Scholar
  5. Amy Brown and Greg Wilson. 2012. The Architecture Of Open Source Applications. Vol. II. Retrieved from lulu.com.Google ScholarGoogle Scholar
  6. Egon Brger, Alessandra Cavarra, and Elvinia Riccobene. 2004. On formalizing UML state machines using ASMs. Inform. Softw. Technol. 46, 5 (2004), 287--292. Google ScholarGoogle ScholarCross RefCross Ref
  7. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  8. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  9. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  10. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  11. 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 ScholarGoogle Scholar
  12. Jori Dubrovin. 2006. JUMBALA: An Action anguage for UML State Machines. Technical Report HUT-TCS-A101.Google ScholarGoogle Scholar
  13. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  14. Abdoulaye Gamatié. 2009. Designing Embedded Systems with the SIGNAL Programming Language: Synchronous, Reactive Specification (1st ed.). Springer, Berlin. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  16. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  17. David Harel. 1987. Statecharts: A visual formalism for complex systems. Sci. Comput. Program. 8, 3 (1987), 231--274. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  19. 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 ScholarGoogle Scholar
  20. IEEE754 2008. IEEE Standard for Floating-Point Arithmetic. (Aug. 2008).Google ScholarGoogle Scholar
  21. Gilles Kahn. 1974. The semantics of simple language for parallel programming. In IFIP Congress. 471--475.Google ScholarGoogle Scholar
  22. 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 ScholarGoogle ScholarCross RefCross Ref
  23. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  24. 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 ScholarGoogle ScholarCross RefCross Ref
  25. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  26. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  27. Object Management Group. 2009. UML Profile for MARTE: Modeling and Analysis of Real-Time Embedded Systems.Google ScholarGoogle Scholar
  28. Object Management Group. 2011. OMG Unified Modeling Language, Superstructure, v2.4.1. Technical Report. OMG.Google ScholarGoogle Scholar
  29. Object Management Group. 2012. OMG Systems Modeling Language (OMG SysML), Version 1.3.Google ScholarGoogle Scholar
  30. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  31. Gordon D. Plotkin. 2004. A structural approach to operational semantics. J. Log. Algebr. Program. 60--61 (2004), 17--139.Google ScholarGoogle Scholar
  32. John C. Reynolds. 1999. Theories of Programming Languages. Cambridge University Press, New York, NY. Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  34. Dana Scott. 1971. Toward a Mathematical Semantics for Computer Languages. Technical Report PRG06. OUCL.Google ScholarGoogle Scholar
  35. Dirk Seifert. 2008. An Executable Formal Semantics for a UML State Machine Kernel Considering Complex Structured Data. Rapport de recherche.Google ScholarGoogle Scholar
  36. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  37. 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 ScholarGoogle Scholar

Index Terms

  1. From a Formalized Parallel Action Language to Its Efficient Code Generation

        Recommendations

        Comments

        Login options

        Check if you have access through your login credentials or your institution to get full access on this article.

        Sign in

        Full Access

        PDF Format

        View or Download as a PDF file.

        PDF

        eReader

        View online with eReader.

        eReader
        About Cookies On This Site

        We use cookies to ensure that we give you the best experience on our website.

        Learn more

        Got it!