The Semantic Model Features of the Statically Typed Language of Functional-dataflow Parallel Programming

Authors

DOI:

https://doi.org/10.14529/jsfi230203

Keywords:

parallelism, parallel computation model, architecture-independent parallel programming, functional-dataflow parallel programming, transformation of parallel programs

Abstract

The features of a statically typed functional-dataflow model of parallel computation and its mapping to the statically typed language of functional-dataflow parallel programming Smile are considered. To provide support for architecture-independent parallel programming, we used: a functional style, an implicit managing of calculations on data readiness, structured data objects that provide representation of various types of parallelism. A distinctive feature of the approach is the inclusion in the model of special asynchronous data objects that can generate events on partial filling. These data objects are stream and swarm. Each of these data objects has its own specifics to control by parallel calculations. A stream is used to process data of the same type that arrives sequentially and asynchronously at random intervals. A swarm is used to describe independent data of the same type or different types, on which it is possible to perform massive parallel operations. The use of streams and swarms in various situations as well as their mapping into each other and other program objects are shown. An analysis is made of the possibilities of transforming the formed language constructs into programming languages used in writing programs for modern parallel architectures.

References

Steinberg, B.Ya., Steinberg, O.B.: Program transformations as the base for optimizing parallelizing compilers. Program Systems: Theory and Applications 12:1(48), 21–113 (2021). https://doi.org/10.25209/2079-3316-2021-12-1-21-113 (in Russian)

Legalov, A.I., Vasilyev, V.S., Matkovskii, I.V., Ushakova, M.S.: A Toolkit for the Development of Data-Driven Functional Parallel Programmes. In: Sokolinsky, L., Zymbler, M. (eds) Parallel Computational Technologies. PCT 2018. Communications in Computer and Information Science, vol. 910, pp. 16–30. Springer, Cham (2018). https://doi.org/10.1007/978-3-319-99673-8_2

Pierce, B.C.: Types and Programming Languages. The MIT Press (2002)

Legalov, A.I.: On the control of computations in parallel systems and programming languages. Scientific Bulletin of NSTU 3(18), 63–72 (2004) (in Russian)

Okasaki, C.: Purely Functional Data Structures. Cambridge University Press (1998)

Charpentier, M.: Functional and Concurrent Programming: Core Concepts and Features. Addison-Wesley (2022). 528 p.

Dennis, J.B., Fosseen, J.B., Linderman, J.P.: Data flow schemas. In: Ershov, A., Nepomniaschy, V. (eds) International Symposium on Theoretical Programming. Lecture Notes in Computer Science, vol. 5. Springer (1974). https://doi.org/10.1007/3-540-06720-5_15

Kasyanov, V.: Sisal 3.2: functional language for scientific parallel programming. Enterp. Inf. Syst. 7(2), 227–236 (2013). https://doi.org/10.1080/17517575.2012.744854

Levin, I., Dordopulo, A., Gudkov, V., et al.: Software Development Tools for FPGA-Based Reconfigurable Systems Programming. In: Voevodin, Vl., Sobolev, S. (eds) Supercomputing. RuSCDays 2019. Communications in Computer and Information Science, vol. 1129. Springer, Cham (2019). https://doi.org/10.1007/978-3-030-36592-9_51

Malyshkin, V., Perepelkin, V.: The PIC Implementation in LuNA System of Fragmented Programming. The Journal of Supercomputing 69(1), 89–97 (2014). https://doi.org/10.1007/s11227-014-1216-8

Legalov, A.I.: Functional language for creating architecturally independent parallel programs. Vychislit. Tekhnol. 10(1), 71–89 (2005) (in Russian)

Legalov, A.I., Redkin, A.V., Matkovsky, I.V.: Functional-dataflow parallel programming with asynchronously incoming data. In: Parallel computing technologies (PaVT’2009): Proceedings of the International Scientific Conference, Nizhny Novgorod, March 30 – April 3, 2009, pp. 573–578. Chelyabinsk, Ed. SUSU (2009) (in Russian)

Romanova, D.S., Nepomnyashchiy, O.V., Ryzhenko, I.N., et al.: Parallelism reduction method in the high-level VLSI synthesis implementation. Trudy ISP RAN/Proc. ISP RAS 34(1), 59–72 (2022). https://doi.org/10.15514/ISPRAS-2022-34(1)-5

Vasilev, V.S., Legalov, A.I., Zykov, S.V.: Transformation of Functional Dataflow Parallel Programs into Imperative Programs / Automatic Control and Computer Sciences 56(7), 815–827 (2021). https://doi.org/10.3103/S0146411622070239

Backus, J.: Can programming be liberated from von Neuman style? A functional stile and its algebra of programs. CACM 21(8), 613–641 (1978). https://doi.org/10.1145/359576.359579

Legalov, A.I., Legalov, I.A., Matkovskii, I.V.: Specifics of Semantics of a Statically Typed Language of Functional and Dataflow Parallel Programming - Scientific Services & Internet 2019. In: CEUR Workshop Proceedings, vol. 2543, pp. 274–284. https://doi.org/10.20948/abrau-2019-08

Legalov, A.I., Matkovskii. I.V., Ushakova, M.S., Romanova, D.S.: Dynamically Changing Parallelism with Asynchronous Sequential Data Flows. Automatic Control and Computer Sciences 55(7), 636–646 (2021). https://doi.org/10.3103/S0146411621070105

Downloads

Published

2023-08-28

How to Cite

Legalov, A. I., & Chuykin, N. K. (2023). The Semantic Model Features of the Statically Typed Language of Functional-dataflow Parallel Programming. Supercomputing Frontiers and Innovations, 10(2), 32–45. https://doi.org/10.14529/jsfi230203