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.
REFERENCES
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
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.
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.
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
Legalov, A.I., Functional language for creating architecturally independent parallel programs, Vychislit. Tekhnol., 2005, vol. 10, no. 1, pp. 71–89.
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
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
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
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.
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
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
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
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
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
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.
Ushakova, M.S., Data type semantics of the dataflow parallel programming language Pifagor, Obraz. Resursy Tekhnol., 2016, no. 2, pp. 263–269.
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.
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
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.
Author information
Authors and Affiliations
Corresponding authors
Ethics declarations
The authors declare that they have no conflicts of interest.
Additional information
Translated by O. Pismenov
About this article
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
Received:
Revised:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.3103/S0146411622070239