Abstract
Graph algorithms have fundamental applications in the real world but can be both cumbersome to implement in traditional languages and difficult to execute efficiently on modern multicore hardware. The Bulk Synchronous Parallel model of computation has recently been used to define vertex-centric computations on graphs. We describe an em- bedded domain specific language (using Haskell as the underlying host language) for specifying such algorithms, and show an implementation of an execution platform that allows to execute them on multicore systems in parallel. For several benchmarks varying in algorithm, graph size and edge distribution, we achieved speedups ranging from 9 up to 11 for 16 threads.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Grama, A., Karypis, G., Kumar, V., Gupta, A.: Introduction to Parallel Computing, 2nd edn. Addison Wesley (January 2003)
Valiant, L.G.: A bridging model for parallel computation. Commun. ACM 33(8), 103–111 (1990)
Valiant, L.G.: A bridging model for multi-core computing. Journal of Computer and System Sciences 77(1), 154–166 (2008)
Malewicz, G., Austern, M.H., Bik, A.J.C., Dehnert, J.C., Horn, I., Leiser, N., Czajkowski, G.: Pregel: a system for large-scale graph processing. In: Proceedings of the 2010 International Conference on Management of Data, SIGMOD 2010, pp. 135–146. ACM, New York (2010)
Thomas, D.E., Moorby, P.R.: The Verilog hardware description language, 4th edn. Kluwer Academic Publishers, Norwell (1998)
Codd, E.F.: The relational model for database management: version 2. Addison-Wesley Longman Publishing Co., Inc., Boston (1990)
Hudak, P.: Modular domain specific languages and tools. In: Proceedings of Fifth International Conference on Software Reuse, pp. 134–142. IEEE Computer Society Press (1998)
Alves, N.M.M., de Mello Schneider, S.: Implementation of an embedded hardware description language using haskell. Journal of Universal Computer Science 9(8), 795–812 (2003)
Elliott, C.: Programming graphics processors functionally. In: Proceedings of the 2004 Haskell Workshop. ACM Press (2004)
Elliott, C.: Tangible functional programming. In: International Conference on Functional Programming (2007)
Jones, S.P., Eber, J.M., Seward, J.: Composing contracts: an adventure in financial engineering (functional pearl). In: Proceedings of the Fifth ACM SIGPLAN International Conference on Functional Programming, ICFP 2000, pp. 280–292. ACM, New York (2000)
GitHub: Repository with source code, http://github.com/mlesniak/palovca
Brin, S., Page, L.: The anatomy of a large-scale hypertextual web search engine. In: Seventh International World-Wide Web Conference, WWW 1998 (1998)
Bonorden, O., Juurlink, B.H., von Otte, I., Rieping, I.: The paderborn university bsp (pub) library. Parallel Computing 29(2), 187–207 (2003)
Goudreau, M.W., Lang, K., Rao, S.B., Suel, T., Tsantilas, T.: Portable and efficient parallel computing using the bsp model. IEEE Trans. Comput. 48 (July 1999)
Pointon, R.F., Trinder, P.W., Loidl, H.-W.: The Design and Implementation of Glasgow Distributed Haskell. In: Mohnen, M., Koopman, P. (eds.) IFL 2000. LNCS, vol. 2011, pp. 53–70. Springer, Heidelberg (2001)
Brown, N.C.C.: Communicating haskell processes: Composable explicit concurrency using monads. In: Welch, P.H., Stepney, S., Polack, F., Barnes, F.R.M., McEwan, A.A., Stiles, G.S., Broenink, J.F., Sampson, A.T. (eds.) CPA. Concurrent Systems Engineering Series, vol. 66, pp. 67–83. IOS Press (2008)
Jones, S.L.P., Leshchinskiy, R., Keller, G., Chakravarty, M.M.T.: Harnessing the multicores: Nested data parallelism in haskell. In: Hariharan, R., Mukund, M., Vinay, V. (eds.) FSTTCS. LIPIcs, vol. 2, pp. 383–414. Schloss Dagstuhl - Leibniz-Zentrum fuer Informatik (2008)
Stewart, A., Clint, M., Gabarró, J.: Barrier synchronisation: Axiomatisation and relaxation. Formal Aspects of Computing 16, 36–50 (2004)
Hoare, C.A.R.: Communicating sequential processes (1985)
King, D.J., Launchbury, J.: Lazy depth-first search and linear graph algorithms in haskell. GLA, 145–155 (1994)
Anand, C.K., Kahl, W.: A domain-specific language for the generation of optimized SIMD-parallel assembly code. SQRL Report 43, Software Quality Research Laboratory, McMaster University (May 2007)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2012 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Lesniak, M. (2012). Palovca: Describing and Executing Graph Algorithms in Haskell. In: Russo, C., Zhou, NF. (eds) Practical Aspects of Declarative Languages. PADL 2012. Lecture Notes in Computer Science, vol 7149. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-27694-1_12
Download citation
DOI: https://doi.org/10.1007/978-3-642-27694-1_12
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-27693-4
Online ISBN: 978-3-642-27694-1
eBook Packages: Computer ScienceComputer Science (R0)