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.
Access provided by Autonomous University of Puebla. Download to read the full chapter text
Chapter PDF
Similar content being viewed by others
Keywords
References
Cole, M.: Algorithmic Skeletons: Structured Management of Parallel Computation. MIT Press (1989), http://homepages.inf.ed.ac.uk/mic/Pubs
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)
Emoto, K., Fischer, S., Hu, Z.: Filter-embedding semiring fusion for programming with MapReduce. Formal Aspects of Computing 24(4-6), 623–645 (2012)
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)
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)
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)
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)
Loulergue, F., Hains, G., Foisy, C.: A Calculus of Functional BSP Programs. Science of Computer Programming 37(1-3), 253–277 (2000)
Lupinski, N., Falcou, J., Paulin-Mohring, C.: Sémantique d’une langage de squelettes (2012), http://www.lri.fr/~paulin/Skel/article.pdf
Malecha, G., Morrisett, G., Wisnesky, R.: Trace-based verification of imperative programs with i/o. J. Symb. Comput. 46(2), 95–118 (2011)
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)
Otto, F., Sokratova, O.: Reduction relations for monoid semirings. Journal of Symbolic Computation 37(3), 343–376 (2004)
Snir, M., Gropp, W.: MPI the Complete Reference. MIT Press (1998)
Swierstra, W.: More dependent types for distributed arrays. Higher-Order and Symbolic Computation 23(4), 489–506 (2010)
SyDPaCC Home Page, http://traclifo.univ-orleans.fr/SyDPaCC
Valiant, L.G.: A bridging model for parallel computation. Commun. ACM 33(8), 103 (1990)
Wadler, P.: Theorems for free! In: Proceedings of the Fourth International Conference on Functional Programming Languages and Computer Architecture, pp. 347–359. ACM (1989)
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)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights 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)