Abstract
Algorithmic skeletons in conjunction with list homomorphisms play an important role in formal development of parallel algorithms. We have designed a notion of homomorphism dedicated to bulk synchronous parallelism. In this paper we derive two application using this theory: sparse matrix vector multiplication and the all nearest smaller values problem. We implement a support for BSP homomorphism in the Orléans Skeleton Library and experiment it with these two applications.
Chapter PDF
Similar content being viewed by others
Keywords
References
Bird, R.: An introduction to the theory of lists. In: Broy, M. (ed.) Logic of Programming and Calculi of Discrete Design, pp. 5–42. Springer (1987)
Cole, M.: Algorithmic Skeletons: Structured Management of Parallel Computation. MIT Press (1989), http://homepages.inf.ed.ac.uk/mic/Pubs
Cole, M.: Parallel Programming with List Homomorphisms. Parallel Processing Letters 5(2), 191–203 (1995)
Deitz, S.J., Callahan, D., Chamberlain, B.L., Snyder, L.: Global-view abstractions for user-defined reductions and scans. In: PPoPP, pp. 40–47. ACM, New York (2006)
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)
González-Vélez, H., Leyton, M.: A survey of algorithmic skeleton frameworks: high-level structured parallel programming enablers. Software, Practrice & Experience 40(12), 1135–1160 (2010)
Gorlatch, S., Bischof, H.: Formal Derivation of Divide-and-Conquer Programs: A Case Study in the Multidimensional FFT’s. In: Mery, D. (ed.) Formal Methods for Parallel Programming: Theory and Applications, pp. 80–94 (1997)
Javed, N., Loulergue, F.: Parallel Programming and Performance Predictability with Orléans Skeleton Library. In: International Conference on High Performance Computing and Simulation (HPCS), pp. 257–263. IEEE (2011)
Jifeng, H., Miller, Q., Chen, L.: Algebraic laws for BSP programming. In: Bougé, L., Fraigniaud, P., Mignotte, A., Robert, Y. (eds.) Euro-Par 1996, Part II. LNCS, vol. 1124, pp. 359–368. Springer, Heidelberg (1996)
Leroy, X., Doligez, D., Frisch, A., Garrigue, J., Rémy, D., Vouillon, J.: The OCaml System release 4.00.0 (2012), http://caml.inria.fr
Loulergue, F.: Parallel Juxtaposition for Bulk Synchronous Parallel ML. In: Kosch, H., Böszörményi, L., Hellwagner, H. (eds.) Euro-Par 2003. LNCS, vol. 2790, pp. 781–788. Springer, Heidelberg (2003)
Matsuzaki, K., Emoto, K.: Implementing Fusion-Equipped Parallel Skeletons by Expression Templates. In: Morazán, M.T., Scholz, S.-B. (eds.) IFL 2009. LNCS, vol. 6041, pp. 72–89. Springer, Heidelberg (2010)
Matsuzaki, K., Hu, Z., Takeichi, M.: Parallelization with tree skeletons. In: Kosch, H., Böszörményi, L., Hellwagner, H. (eds.) Euro-Par 2003. LNCS, vol. 2790, pp. 789–798. Springer, Heidelberg (2003)
Morita, K., Morihata, A., Matsuzaki, K., Hu, Z., Takeichi, M.: Automatic Inversion Generates Divide-and-Conquer Parallel Programs. In: Conference on Programming Language Design and Implementation (PLDI), pp. 146–155. ACM Press (2007)
O’Sullivan, B., Stewart, D., Goerzen, J.: Real World Haskell. O’Reilly (2008)
Stewart, A., Clint, M., Gabarró, J.: Barrier synchronisation: Axiomatisation and relaxation. Formal Aspects of Computing 16(1), 36–50 (2004)
Tesson, J.: Environnement pour le développement et la preuve de correction systématiques de programmes parallèles fonctionnels. Ph.D. thesis, LIFO, University of Orléans (November 2011), http://hal.archives-ouvertes.fr/tel-00660554/en/
The Coq Development Team: The Coq Proof Assistant, http://coq.inria.fr
The SDPP Development Team: Systematic Development of Parallel Programs, http://traclifo.univ-orleans.fr/SDPP
Touati, S.A.A., Worms, J., Briais, S.: The Speedup Test. Tech. Rep. inria-00443839, INRIA Saclay - Ile de France (2010), http://hal.inria.fr/inria-00443839
Valiant, L.G.: A bridging model for parallel computation. Comm. of the ACM 33(8), 103 (1990)
Veldhuizen, T.: Techniques for Scientific C++. Computer science technical report 542, Indiana University (2000)
Zavanella, A.: The skel-BSP global optimizer: Enhancing performance portability in parallel programming. In: Bode, A., Ludwig, T., Karl, W.C., Wismüller, R. (eds.) Euro-Par 2000. LNCS, vol. 1900, pp. 658–667. Springer, Heidelberg (2000)
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
© 2013 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Legaux, J., Hu, Z., Loulergue, F., Matsuzaki, K., Tesson, J. (2013). Programming with BSP Homomorphisms. In: Wolf, F., Mohr, B., an Mey, D. (eds) Euro-Par 2013 Parallel Processing. Euro-Par 2013. Lecture Notes in Computer Science, vol 8097. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-40047-6_46
Download citation
DOI: https://doi.org/10.1007/978-3-642-40047-6_46
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-40046-9
Online ISBN: 978-3-642-40047-6
eBook Packages: Computer ScienceComputer Science (R0)