Skip to main content

Developing and Optimizing Parallel Programs with Algebra-Algorithmic and Term Rewriting Tools

  • Conference paper
Information and Communication Technologies in Education, Research, and Industrial Applications (ICTERI 2013)

Abstract

An approach to program design and synthesis using algebra-algorithmic specifications and rewriting rules techniques is proposed. An algebra-algorithmic toolkit based on the approach allows building syntactically correct and easy-to-understand algorithm specifications. The term rewriting system supplements the algebra-algorithmic toolkit with facilities for transformation of the sequential and parallel algorithms, enabling performance improvement. We demonstrate the usage of the proposed tools with a simple example of parallelizing sequential program and improving performance of a parallel program, and also discuss possible applications in larger real-world projects.

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

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Akhter, S., Roberts, J.: Multi-Core Programming. Intel Press, Hillsboro (2006)

    Google Scholar 

  2. Andon, F.I., Doroshenko, A.Y., Tseytlin, G.O., Yatsenko, O.A.: Algebra-Algorithmic Models and Methods of Parallel Programming. Akademperiodika, Kyiv (2007) (in Russian)

    Google Scholar 

  3. Apel, S., et al.: An Algebraic Foundation for Automatic Feature-Based Program Synthesis. Science of Computer Programming 75(11), 1022–1047 (2010)

    Article  MATH  Google Scholar 

  4. Bagheri, H., Sullivan, K.: Pol: Specification-Driven Synthesis of Architectural Code Frameworks for Platform-Based Applications. In: Proc. 11th Int. Conf on Generative Programming and Component Engineering, pp. 93–102. ACM, New York (2012)

    Google Scholar 

  5. Barthe, G., et al.: From relational verification to SIMD loop synthesis. ACM SIGPLAN Notices 48(8), 123–134 (2013)

    Article  Google Scholar 

  6. Batory, D.: Program Refactoring, Program Synthesis, and Model-Driven Development. In: Adsul, B., Odersky, M. (eds.) CC 2007. LNCS, vol. 4420, pp. 156–171. Springer, Heidelberg (2007)

    Chapter  Google Scholar 

  7. Bures, T., et al.: The Role of Ontologies in Schema-Based Program Synthesis. In: Proc. Workshop on Ontologies as Software Engineering Artifacts, Vancouver (2004)

    Google Scholar 

  8. Cilk Home Page, http://cilkplus.org/

  9. Doroshenko, A.Y., Prusov, V.A.: Methods of Efficient Modeling and Forecasting Regional Atmospheric Processes. In: Faragó, I., et al. (eds.) Advances in Air Pollution Modeling for Environmental Security, pp. 143–152. Springer, Netherlands (2005)

    Chapter  Google Scholar 

  10. Doroshenko, A., Shevchenko, R.: A Rewriting Framework for Rule-Based Programming Dynamic Applications. Fundamenta Informaticae 72(1-3), 95–108 (2006)

    MATH  Google Scholar 

  11. Doroshenko, A., Tseytlin, G., Yatsenko, O., Zachariya, L.: A Theory of Clones and Formalized Design of Programs. In: Proc. Int. Workshop on Concurrency, Specification and Programming (CS&P 2006), Wandlitz, Germany, pp. 328–339 (2006)

    Google Scholar 

  12. Doroshenko, A.Y., Zhereb, K.A., Yatsenko, Y.A.: On Complexity and Coordination of Computation in Multithreaded Programs. Problems in Programming 2, 41–55 (2007) (in Russian)

    Google Scholar 

  13. Doroshenko, A., Zhereb, K.: Parallelizing Legacy Fortran Programs Using Rewriting Rules Technique and Algebraic Program Models. In: Ermolayev, V., Mayr, H.C., Nikitchenko, M., Spivakovsky, A., Zholtkevych, G., et al. (eds.) ICTERI 2012. CCIS, vol. 347, pp. 39–59. Springer, Heidelberg (2013)

    Chapter  Google Scholar 

  14. Fischer, B., Schumann, J.: AutoBayes: a System for Generating Data Analysis Programs from Statistical Models. J. Funct. Program. 13(3), 483–508 (2003)

    Article  MathSciNet  MATH  Google Scholar 

  15. Flener, P.: Achievements and Prospects of Program Synthesis. In: Kakas, A.C., Sadri, F. (eds.) Computational Logic: Logic Programming and Beyond. LNCS (LNAI), vol. 2407, pp. 310–346. Springer, Heidelberg (2002)

    Chapter  Google Scholar 

  16. Gulwani, S.: Dimensions in Program Synthesis. In: 12th Int. ACM SIGPLAN Symposium on Principles and Practice of Declarative Programming, pp. 13–24. ACM, New York (2010)

    Chapter  Google Scholar 

  17. Jackson, D.: Alloy: a lightweight object modelling notation. ACM Transactions on Software Engineering Methodology 11(2), 256–290 (2002)

    Article  Google Scholar 

  18. Jacobs, S., Kuncak, V., Suter, P.: Reductions for Synthesis Procedures. In: Giacobazzi, R., Berdine, J., Mastroeni, I. (eds.) VMCAI 2013. LNCS, vol. 7737, pp. 88–107. Springer, Heidelberg (2013)

    Chapter  Google Scholar 

  19. Kitzelmann, E.: Inductive Programming: a Survey of Program Synthesis Techniques. In: Schmid, U., Kitzelmann, E., Plasmeijer, R. (eds.) AAIP 2009. LNCS, vol. 5812, pp. 50–73. Springer, Heidelberg (2010)

    Chapter  Google Scholar 

  20. Kneuss, E., et al.: On Integrating Deductive Synthesis and Verification Systems. Technical Report (2013)

    Google Scholar 

  21. Leonard, E.I., Heitmeyer, C.L.: Automatic Program Generation from Formal Specifications using APTS. In: Automatic Program Development. A Tribute to Robert Paige, pp. 93–113. Springer, Dordrecht (2008)

    Chapter  Google Scholar 

  22. Mannadiar, R., Vangheluwe, H.: Modular Synthesis of Mobile Device Applications from Domain-Specific Models. In: Proc. 7th Int. Workshop on Model-Based Methodologies for Pervasive and Embedded Software, pp. 21–28. ACM, New York (2010)

    Chapter  Google Scholar 

  23. Menon, A., et al.: A machine learning framework for programming by example. In: Proceedings of the 30th International Conference on Machine Learning (ICML 2013), pp. 187–195 (2013)

    Google Scholar 

  24. Prusov, V.A., Doroshenko, A.Y.: On efficient numerical solution of one-dimensional convection-diffusion equations in modelling atmospheric processes. International Journal of Environment and Pollution 32(2), 231–249 (2008)

    Article  MathSciNet  Google Scholar 

  25. Raychev, V., Vechev, M., Yahav, E.: Automatic Synthesis of Deterministic Concurrency. In: Logozzo, F., Fähndrich, M. (eds.) Static Analysis. LNCS, vol. 7935, pp. 283–303. Springer, Heidelberg (2013)

    Chapter  Google Scholar 

  26. Rompf, T., Odersky, M.: Lightweight modular staging: a pragmatic approach to runtime code generation and compiled DSLs. Communications of ACM 55(6), 121–130 (2012)

    Article  Google Scholar 

  27. Srivastava, S., Gulwani, S., Foster, J.S.: From Program Verification to Program Synthesis. In: Proc. 37th Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pp. 313–326. ACM, New York (2010)

    Chapter  Google Scholar 

  28. Yatsenko, O.: On Parameter-Driven Generation of Algorithm Schemes. In: Proc. Int. Workshop on Concurrency: Specification and Programming (CS&P 2012), Berlin, Germany, pp. 428–438 (2012)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2013 Springer International Publishing

About this paper

Cite this paper

Doroshenko, A., Zhereb, K., Yatsenko, O. (2013). Developing and Optimizing Parallel Programs with Algebra-Algorithmic and Term Rewriting Tools. In: Ermolayev, V., Mayr, H.C., Nikitchenko, M., Spivakovsky, A., Zholtkevych, G. (eds) Information and Communication Technologies in Education, Research, and Industrial Applications. ICTERI 2013. Communications in Computer and Information Science, vol 412. Springer, Cham. https://doi.org/10.1007/978-3-319-03998-5_5

Download citation

  • DOI: https://doi.org/10.1007/978-3-319-03998-5_5

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-319-03997-8

  • Online ISBN: 978-3-319-03998-5

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics