Skip to main content

Palovca: Describing and Executing Graph Algorithms in Haskell

  • Conference paper

Part of the book series: Lecture Notes in Computer Science ((LNPSE,volume 7149))

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.

This is a preview of subscription content, log in via an institution.

Buying options

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

Learn about institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Grama, A., Karypis, G., Kumar, V., Gupta, A.: Introduction to Parallel Computing, 2nd edn. Addison Wesley (January 2003)

    Google Scholar 

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

    Article  Google Scholar 

  3. Valiant, L.G.: A bridging model for multi-core computing. Journal of Computer and System Sciences 77(1), 154–166 (2008)

    Article  MathSciNet  MATH  Google Scholar 

  4. 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)

    Google Scholar 

  5. Thomas, D.E., Moorby, P.R.: The Verilog hardware description language, 4th edn. Kluwer Academic Publishers, Norwell (1998)

    Book  MATH  Google Scholar 

  6. Codd, E.F.: The relational model for database management: version 2. Addison-Wesley Longman Publishing Co., Inc., Boston (1990)

    MATH  Google Scholar 

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

    Google Scholar 

  8. 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)

    Google Scholar 

  9. Elliott, C.: Programming graphics processors functionally. In: Proceedings of the 2004 Haskell Workshop. ACM Press (2004)

    Google Scholar 

  10. Elliott, C.: Tangible functional programming. In: International Conference on Functional Programming (2007)

    Google Scholar 

  11. 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)

    Chapter  Google Scholar 

  12. GitHub: Repository with source code, http://github.com/mlesniak/palovca

  13. Brin, S., Page, L.: The anatomy of a large-scale hypertextual web search engine. In: Seventh International World-Wide Web Conference, WWW 1998 (1998)

    Google Scholar 

  14. Bonorden, O., Juurlink, B.H., von Otte, I., Rieping, I.: The paderborn university bsp (pub) library. Parallel Computing 29(2), 187–207 (2003)

    Article  Google Scholar 

  15. 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)

    Google Scholar 

  16. 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)

    Chapter  Google Scholar 

  17. 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)

    Google Scholar 

  18. 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)

    Google Scholar 

  19. Stewart, A., Clint, M., Gabarró, J.: Barrier synchronisation: Axiomatisation and relaxation. Formal Aspects of Computing 16, 36–50 (2004)

    Article  MATH  Google Scholar 

  20. Hoare, C.A.R.: Communicating sequential processes (1985)

    Google Scholar 

  21. King, D.J., Launchbury, J.: Lazy depth-first search and linear graph algorithms in haskell. GLA, 145–155 (1994)

    Google Scholar 

  22. 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)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

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

Publish with us

Policies and ethics