Skip to main content

A Verified Generate-Test-Aggregate Coq Library for Parallel Programs Extraction

  • Conference paper
Book cover Interactive Theorem Proving (ITP 2014)

Part of the book series: Lecture Notes in Computer Science ((LNTCS,volume 8558))

Included in the following conference series:

Abstract

The integration of the generate-and-test paradigm and semirings for the aggregation of results provides a parallel programming framework for large scale data-intensive applications. The so-called GTA framework allows a user to define an inefficient specification of his/her problem as a composition of a generator of all the candidate solutions, a tester of valid solutions, and an aggregator to combine the solutions. Through two calculation theorems a GTA specification is transformed into a divide-and-conquer efficient program that can be implemented in parallel. In this paper we present a verified implementation of this framework in the Coq proof assistant: efficient bulk synchronous parallel functional programs can be extracted from naive GTA specifications. We show how to apply this framework on an example, including performance experiments on parallel machines.

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. Cole, M.: Algorithmic Skeletons: Structured Management of Parallel Computation. MIT Press (1989), http://homepages.inf.ed.ac.uk/mic/Pubs

  2. Corra, R.C., Farias, P.M., de Souza, C.P.: Insertion and sorting in a sequence of numbers minimizing the maximum sum of a contiguous subsequence. Journal of Discrete Algorithms 21, 1–10 (2013)

    Article  MathSciNet  Google Scholar 

  3. Emoto, K., Fischer, S., Hu, Z.: Filter-embedding semiring fusion for programming with MapReduce. Formal Aspects of Computing 24(4-6), 623–645 (2012)

    Article  MATH  MathSciNet  Google Scholar 

  4. Emoto, K., Fischer, S., Hu, Z.: Generate, Test, and Aggregate – A Calculation-based Framework for Systematic Parallel Programming with MapReduce. In: Seidl, H. (ed.) ESOP 2012. LNCS, vol. 7211, pp. 254–273. Springer, Heidelberg (2012)

    Chapter  Google Scholar 

  5. Gava, F., Fortin, J., Guedj, M.: Deductive Verification of State-Space Algorithms. In: Johnsen, E.B., Petre, L. (eds.) IFM 2013. LNCS, vol. 7940, pp. 124–138. Springer, Heidelberg (2013)

    Chapter  Google Scholar 

  6. Gesbert, L., Hu, Z., Loulergue, F., Matsuzaki, K., Tesson, J.: Systematic Development of Correct Bulk Synchronous Parallel Programs. In: International Conference on Parallel and Distributed Computing, Applications and Technologies (PDCAT), pp. 334–340. IEEE (2010)

    Google Scholar 

  7. Ho, T.J., Chen, B.S.: Novel extended viterbi-based multiple-model algorithms for state estimation of discrete-time systems with markov jump parameters. IEEE Transactions on Signal Processing 54(2), 393–404 (2006)

    Article  Google Scholar 

  8. Loulergue, F., Hains, G., Foisy, C.: A Calculus of Functional BSP Programs. Science of Computer Programming 37(1-3), 253–277 (2000)

    Article  MATH  MathSciNet  Google Scholar 

  9. Lupinski, N., Falcou, J., Paulin-Mohring, C.: Sémantique d’une langage de squelettes (2012), http://www.lri.fr/~paulin/Skel/article.pdf

  10. Malecha, G., Morrisett, G., Wisnesky, R.: Trace-based verification of imperative programs with i/o. J. Symb. Comput. 46(2), 95–118 (2011)

    Article  MATH  MathSciNet  Google Scholar 

  11. Mu, S.-C., Ko, H.-S., Jansson, P.: Algebra of programming using dependent types. In: Audebaud, P., Paulin-Mohring, C. (eds.) MPC 2008. LNCS, vol. 5133, pp. 268–283. Springer, Heidelberg (2008)

    Chapter  Google Scholar 

  12. Otto, F., Sokratova, O.: Reduction relations for monoid semirings. Journal of Symbolic Computation 37(3), 343–376 (2004)

    Article  MATH  MathSciNet  Google Scholar 

  13. Snir, M., Gropp, W.: MPI the Complete Reference. MIT Press (1998)

    Google Scholar 

  14. Swierstra, W.: More dependent types for distributed arrays. Higher-Order and Symbolic Computation 23(4), 489–506 (2010)

    Article  MATH  MathSciNet  Google Scholar 

  15. SyDPaCC Home Page, http://traclifo.univ-orleans.fr/SyDPaCC

  16. Valiant, L.G.: A bridging model for parallel computation. Commun. ACM 33(8), 103 (1990)

    Article  Google Scholar 

  17. Wadler, P.: Theorems for free! In: Proceedings of the Fourth International Conference on Functional Programming Languages and Computer Architecture, pp. 347–359. ACM (1989)

    Google Scholar 

  18. Zhou, J., Chen, Y.: Generating C code from LOGS specifications. In: Van Hung, D., Wirsing, M. (eds.) ICTAC 2005. LNCS, vol. 3722, pp. 195–210. Springer, Heidelberg (2005)

    Chapter  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2014 Springer International Publishing Switzerland

About this paper

Cite this paper

Emoto, K., Loulergue, F., Tesson, J. (2014). A Verified Generate-Test-Aggregate Coq Library for Parallel Programs Extraction. In: Klein, G., Gamboa, R. (eds) Interactive Theorem Proving. ITP 2014. Lecture Notes in Computer Science, vol 8558. Springer, Cham. https://doi.org/10.1007/978-3-319-08970-6_17

Download citation

  • DOI: https://doi.org/10.1007/978-3-319-08970-6_17

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-319-08969-0

  • Online ISBN: 978-3-319-08970-6

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics