Skip to main content

A Toolkit for the Development of Data-Driven Functional Parallel Programmes

  • Conference paper
  • First Online:
Parallel Computational Technologies (PCT 2018)

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.

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 to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

References

  1. 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

  2. Karpov, Y.G.: Model Checking. Verification of Parallel and Distributed Program Systems. BHV-Petersburg, Saint Petersburg (2010). (in Russian)

    Google Scholar 

  3. 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)

    Google Scholar 

  4. Akhter, S., Roberts, J.: Multi-core Programming Increasing Performance through Software Multithreading. Intel Press, Santa Clara (2006)

    Google Scholar 

  5. Cheng, J., Grossman, M., McKercher Ty.: Professional CUDA Programming. Wiley, Indianapolis (2014)

    Google Scholar 

  6. Tay, R.: OpenCL Parallel Programming Development Cookbook. Packt Publishing Ltd., Birmingham (2013)

    Google Scholar 

  7. Lastovetsky, A.L.: Parallel Computing on Heterogeneous Networks. Willey, Hoboken (2003). https://doi.org/10.1002/0471654167

    Book  MATH  Google Scholar 

  8. Maad, S. (ed.): Grid Computing – Technology and Applications, Widespread Coverage and New Horizons. InTech, Rijeka (2012). https://doi.org/10.5772/2290

  9. 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)

    Google Scholar 

  10. Voevodin, V.V., Voevodin, Vl.V.: Parallel Computations. BHV-Petersburg, Saint Petersburg (2002). (in Russian)

    Google Scholar 

  11. Legalov, A.I.: The functional programming language for creating architecture-independent parallel program. Comput. Technol. 10(1), 71–89 (2005). (in Russian)

    MATH  Google Scholar 

  12. Legalov, A.I.: Managing computation in parallel systems and programming languages. Sci. Bull. NSTU 3(18), 63–72 (2004). (in Russian)

    Google Scholar 

  13. 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

    Article  MathSciNet  MATH  Google Scholar 

  14. 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)

    Google Scholar 

  15. Hoare, C.A.R.: An axiomatic basis for computer programming. CACM 12(10), 576–585 (1969). https://doi.org/10.1145/363235.363259

    Article  MATH  Google Scholar 

  16. 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

    Chapter  Google Scholar 

  17. 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

    Article  MathSciNet  Google Scholar 

  18. 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

  19. Yang, Y.: LabVIEW Graphical Programming Cookbook. Packt Publishing, Birmingham (2014)

    Google Scholar 

  20. 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

    Article  Google Scholar 

  21. Legalov, A.I.: Parallel algorithms development. Open Syst. 9(101), 64–68 (2004). (in Russian)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Alexander I. Legalov .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2018 Springer Nature Switzerland AG

About this paper

Check for updates. Verify currency and authenticity via CrossMark

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)

Publish with us

Policies and ethics