Skip to main content
Log in

Transformation of Functional Dataflow Parallel Programs into Imperative Programs

  • Published:
Automatic Control and Computer Sciences Aims and scope Submit manuscript

Abstract

The functional dataflow paradigm of parallel programming is focused on the development of parallel portable programs. The source code of functional dataflow programs is translated into a set of graphs reflecting information and control dependences. The main method of their execution is interpretation, which makes it impossible to perform calculations efficiently on real parallel computing systems and leads to poor performance. In order to run programs directly on existing computing systems, specific optimization and transformation methods that take the features of both the programming language and the system architecture into account are necessary. At present, the von Neumann architecture is the most widespread type. Parallel programming for it is mostly performed using languages that support imperative paradigms and are oriented on the static type system. For different architectures of parallel computing systems, there are various approaches to writing parallel programs. The transformation of functional dataflow parallel programs into imperative programs makes it possible to form a general framework of imperative code fragments that directly represent sequential computations, which can then be adapted to a particular parallel architecture. This article discusses an approach to performing this type of transformation, which consists in extracting fragments of functional dataflow parallel programs as patterns that are subsequently replaced by equivalent imperative language fragments. The proposed transformation methods make it possible to generate source code to which various optimizing transformations, including parallelization with respect to the target architecture, can later be applied.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1.
Fig. 2.

REFERENCES

  1. Vivek, K., Parallel Computing Architectures and APIs: IoT Big Data Stream Processing. New York: Chapman and Hall/ CRC, 2019. https://doi.org/10.1201/9781351029223

    Book  Google Scholar 

  2. Levin, I., Dordopulo, A.I., and Gudkov, V.A., Programmirovanie rekonfiguriruemykh vychislitel’nykh uzlov na yazyke COLAMO (Programming of Reconfigurable Computing Nodes in the COLAMO Language), Taganrog: Tekhnol. Inst., Yuzhnyi Fed. Univ., 2011.

  3. Dordopulo, A.I. and Levin, I.I., Resource-independent programming of hybrid reconfigurable computing systems, Superkomp’yuternye dni v Rossii (Russian Supercomputing Days), Moscow: Mosk. Gos. Univ. im. M.V. Lomonosova, 2017, pp. 714–723.

    Google Scholar 

  4. Kasyanov, V., Sisal 3.2: Functional language for scientific parallel programming, Enterprise Inf. Syst., 2013, vol. 7, no. 2, pp. 227–236.  https://doi.org/10.1080/17517575.2012.744854

    Article  Google Scholar 

  5. Legalov, A.I., Functional language for creating architecturally independent parallel programs, Vychislit. Tekhnol., 2005, vol. 10, no. 1, pp. 71–89.

    MATH  Google Scholar 

  6. Levin, I.I., Dordopulo, A.I., Pisarenko, I.V., and Melnikov, A.K., An approach to architecture-independent programming of computing systems based on the aspect-oriented Set@l language, Izv. Yuzhnogo Fed. Univ. Tekh. Nauki, 2018, no. 3, pp. 46–58.  https://doi.org/10.23683/2311-3103-2018-3-46-58

  7. Legalov, A.I., Vasilev, V.S., Matkovskii, I.V., and Ushakova, M.S., A toolkit for the development of data-driven functional parallel programmes, Parallel Computational Technologies. PCT 2018, Sokolinsky, L. and Zymbler, M., Eds., Cham: Springer, 2018, pp. 16–30.  https://doi.org/10.1007/978-3-319-99673-8_2

    Book  Google Scholar 

  8. Vasilev, V.S. and Legalov, A.I., Loop-invariant optimization in the Pifagor language, Autom. Control Comput. Sci., 2018, vol. 52, no. 7, pp. 843–849.  https://doi.org/10.3103/S0146411618070295

    Article  Google Scholar 

  9. Udalova, Yu.V., Legalov, A. I., and Sirotinina, N.Yu., Methods for debugging and verifying functional-stream parallel programs, Zh. Sib. Fed. Univ. Ser.: Tekh. Tekhnol., 2011, vol. 4, no. 2, pp. 213–224.

    Google Scholar 

  10. Ushakova, M.S. and Legalov, A.I., Verification of programs with mutual recursion in Pifagor language, Autom. Control Comput. Sci., 2018, vol. 52, no. 7, pp. 850–866.  https://doi.org/10.3103/S0146411618070301

    Article  Google Scholar 

  11. Zykov, S.V., Osnovy sovremennogo programmirovaniya. Razrabotka geterogennykh system v internet-orientirovannoi srede (Fundamentals of Modern Programming. Development of Heterogeneous Systems in an Internet-Oriented Environment), IPR Media, 2017. https://doi.org/10.23682/62072

  12. Legalov, A.I., Legalov, I.A., and Matkovsky, I.V., Specifics of semantics of a statically typed language of functional and dataflow parallel programming, Nauchn. Servis Seti Internet, 2019, no. 21, pp. 489–500.  https://doi.org/10.20948/abrau-2019-08

  13. Legalov, A.I., Matkovskii, I.V., Ushakova, M.S., and Romanova, D.S., Dynamically changing parallelism with asynchronous sequential data flows, Autom. Control Comput. Sci., 2021, vol. 55, no. 7, pp. 636–646. https://doi.org/10.3103/S0146411621070105

    Article  Google Scholar 

  14. Nepomnyashchiy, O.V., Ryzhenko, I.N., and Legalov, A.I., Method of architecture-independent high-level synthesis of VLSI, Izv. Yuzhnogo Fed. Univ. Tekh. Nauki, 2018, no. 8, pp. 38–47.  https://doi.org/10.23683/2311-3103-2018-8-38-47

  15. Nepomnyashchiy, O.V., Ryzhenko, I.N., and Legalov, A.I., Methods, algorithms, and software tools for architecturally independent high-level synthesis of single-chip digital systems, Superkomp’yuternye tekhnologii (SKT-2018) (Supercomputing Technologies (SCT-2018)), Rostov-on-Don: Yuzhnyi Fed. Univ., 2018, pp. 104–109.

  16. Ushakova, M.S., Data type semantics of the dataflow parallel programming language Pifagor, Obraz. Resursy Tekhnol., 2016, no. 2, pp. 263–269.

  17. Matkovsky, I.V. and Legalov, A.I., Instrumental support for the translation and execution of functional-stream parallel programs, Polzunovsky Vestn., 2013, no. 2, pp. 49–52.

  18. Ferrante, J., Ottenstein, K.J., and Warren, J.D., The program dependence graph and its use in optimization, ACM Trans. Program. Language Syst., 1987, vol. 9, no. 3, pp. 319–349.  https://doi.org/10.1145/24039.24041

    Article  MATH  Google Scholar 

  19. Bakanov, V.M., Software tools for analyzing the information structure of algorithms based on their information graphs, Parallel’nye vychislitel’nye tekhnologii (PaVT’2016) (Parallel Computing Technologies (PCT’2016)), Chelyabinsk: Yuzhno-Ural. Gos. Univ., 2016, pp. 432–441.

Download references

Author information

Authors and Affiliations

Authors

Corresponding authors

Correspondence to V. S. Vasilev, A. I. Legalov or S. V. Zykov.

Ethics declarations

The authors declare that they have no conflicts of interest.

Additional information

Translated by O. Pismenov

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Vasilev, V.S., Legalov, A.I. & Zykov, S.V. Transformation of Functional Dataflow Parallel Programs into Imperative Programs. Aut. Control Comp. Sci. 56, 815–827 (2022). https://doi.org/10.3103/S0146411622070239

Download citation

  • Received:

  • Revised:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.3103/S0146411622070239

Navigation