Abstract
In the article a technology is considered which aims at creating architecture-independent parallel programmes based on the data-driven functional paradigm. A proposed toolkit provides the translation, execution, debugging, optimisation and verification of programmes. A programme in a data-driven functional parallel language is translated into the data-flow graph (which describes the data dependencies of an implemented algorithm) of the programme. On the basis of this representation, the control-flow graph (which defines the organisation of computations) is generated. Both graphs allow to carry out various optimising transformations. The resulting data-flow graph is also used for the formal verification of the programme. A computation process is considered as a cooperation of the control-flow graph and the data-flow graph. The execution of data-driven functional parallel programmes is carried out by a special interpreter (event machine), which consist of a number of event processors controlled by a special manager.
Keywords
The research is supported by the RFBR (research project No. 17-07-00288).
This is a preview of subscription content, log in via an institution.
Buying options
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsReferences
McKenney, P.E.: Is Parallel Programming Hard, And, If So, What Can You Do About It? www.kernel.org/pub/linux/kernel/people/paulmck/perfbook/perfbook.html
Karpov, Y.G.: Model Checking. Verification of Parallel and Distributed Program Systems. BHV-Petersburg, Saint Petersburg (2010). (in Russian)
Korneev, V.D.: Parallel programming in MPI. Institute of Computational Mathematics and Mathematical Geophysics, Siberian Branch of the Russian Academy of Sciences, Novosibirsk (2002). (in Russian)
Akhter, S., Roberts, J.: Multi-core Programming Increasing Performance through Software Multithreading. Intel Press, Santa Clara (2006)
Cheng, J., Grossman, M., McKercher Ty.: Professional CUDA Programming. Wiley, Indianapolis (2014)
Tay, R.: OpenCL Parallel Programming Development Cookbook. Packt Publishing Ltd., Birmingham (2013)
Lastovetsky, A.L.: Parallel Computing on Heterogeneous Networks. Willey, Hoboken (2003). https://doi.org/10.1002/0471654167
Maad, S. (ed.): Grid Computing – Technology and Applications, Widespread Coverage and New Horizons. InTech, Rijeka (2012). https://doi.org/10.5772/2290
Gaster, B.R., Howes, L., Kaeli, D.R., Mistry, P., Schaa, D.: Heterogeneous Computing with OpenCL. Advanced Micro Devices, Inc., Elsevier Inc., Santa Clara (2013)
Voevodin, V.V., Voevodin, Vl.V.: Parallel Computations. BHV-Petersburg, Saint Petersburg (2002). (in Russian)
Legalov, A.I.: The functional programming language for creating architecture-independent parallel program. Comput. Technol. 10(1), 71–89 (2005). (in Russian)
Legalov, A.I.: Managing computation in parallel systems and programming languages. Sci. Bull. NSTU 3(18), 63–72 (2004). (in Russian)
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., Redkin, A.V., Matkovskii, I.V.: Data driven functional parallel programming with data coming asynchronously. In: PACT 2009, pp. 573–578. South Ural State University, Chelyabinsk (2009). (in Russian)
Hoare, C.A.R.: An axiomatic basis for computer programming. CACM 12(10), 576–585 (1969). https://doi.org/10.1145/363235.363259
Kropacheva, M., Legalov, A.: Formal verification of programs in the pifagor language. In: Malyshkin, V. (ed.) PaCT 2013. LNCS, vol. 7979, pp. 80–89. Springer, Heidelberg (2013). https://doi.org/10.1007/978-3-642-39958-9_7
Ushakova, M.S., Legalov, A.I.: Automation of formal verification of program in the Pifagor language. Model. Anal. Inf. Syst. 22(4), 578–589 (2015). https://doi.org/10.18255/1818-1015-2015-4-578-589
Andrianov, A.N., Baranova, T.P., Bugerya, A.B., Efimkin, K.N.: Nonprocedural NORMA Language and Its Translation Methods for Parallel Architectures. University News. North-Caucasian region, Technical Sciences Series, vol. 3, no. 195, pp. 5–12 (2017). https://doi.org/10.17213/0321-2653-2017-3-5-12
Yang, Y.: LabVIEW Graphical Programming Cookbook. Packt Publishing, Birmingham (2014)
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
Legalov, A.I.: Parallel algorithms development. Open Syst. 9(101), 64–68 (2004). (in Russian)
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2018 Springer Nature Switzerland AG
About this paper
Cite this paper
Legalov, A.I., Vasilyev, V.S., Matkovskii, I.V., Ushakova, M.S. (2018). 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. Springer, Cham. https://doi.org/10.1007/978-3-319-99673-8_2
Download citation
DOI: https://doi.org/10.1007/978-3-319-99673-8_2
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-319-99672-1
Online ISBN: 978-3-319-99673-8
eBook Packages: Computer ScienceComputer Science (R0)