Skip to main content

Kanor

A Declarative Language for Explicit Communication

  • Conference paper

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

Abstract

Programmers of high-performance applications face two major implementation options: to use a high-level language which manages communication implicitly or to use a low-level language while specifying communication explicitly. The high-level approach offers safety and convenience, but forces programmers to give up control, making it difficult to hand-tune communications or to estimate communication cost. The low-level approach retains this control, but forces programmers to express communication at a verbose, tedious, and error-prone level of detail.

We advocate a complementary third approach in which the programmer declaratively, but explicitly, specifies the essence of the communication pattern. The programmer lets the implementation handle the details when appropriate, but retains enough control to hand-encode communications when necessary. In this paper we present Kanor, a language for declaratively expressing explicit communication patterns, and demonstrate how Kanor safely, succinctly, and efficiently expresses both point-to-point and collective communications.

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. Armstrong, J.: The development of Erlang. In: International Conference on Functional Programming, pp. 196–203. ACM, New York (1997)

    Google Scholar 

  2. Blelloch, G.: NESL: A nested data-parallel language (version 3.1). Tech. Rep. CMU-CS-95-170, CMU (January 1995)

    Google Scholar 

  3. Chamberlain, B., Callahan, D., Zima, H.: Parallel programmability and the Chapel language. Int’l. Journal of High Performance Computing Applications 21(3), 291–312 (2007)

    Article  Google Scholar 

  4. Charles, P., Grothoff, C., Saraswat, V.A., Donawa, C., Kielstra, A., Ebcioglu, K., von Praun, C., Sarkar, V.: X10: an object-oriented approach to non-uniform cluster computing. In: Object-Oriented Programming, Systems, Languages, and Applications, pp. 519–538 (2005)

    Google Scholar 

  5. Hoefler, T., Lumsdaine, A., Rehm, W.: Implementation and performance analysis of non-blocking collective operations for MPI. In: Supercomputing. IEEE/ACM (November 2007)

    Google Scholar 

  6. Hoefler, T., Traeff, J.L.: Sparse collective operations for MPI. In: International Parallel & Distributed Processing Symposium, HIPS 2009 Workshop, Rome, Italy (May 2009)

    Google Scholar 

  7. Hoefler, T., Willcock, J., Chauhan, A., Lumsdaine, A.: The Case for Collective Pattern Specification. In: 1st ACM Workshop on Advances in Message Passing (AMP 2010) (June 2010)

    Google Scholar 

  8. Hoefler, T., Siebert, C., Lumsdaine, A.: Scalable communication protocols for dynamic sparse data exchange. In: Principles and Practice of Parallel Programming, pp. 159–168. ACM, New York (2010)

    Google Scholar 

  9. Kennedy, K., Koelbel, C., Zima, H.: The rise and fall of High Performance Fortran: An historical object lesson. In: History of Programming Languages III, p. 7-1–7-22. ACM, New York (2007)

    Google Scholar 

  10. Loogen, R., Ortega-Mallén, Y., Peña-Marí, R.: Parallel functional programming in Eden. Journal of Functional Programming (15), 431–475 (2005)

    Google Scholar 

  11. MPI Forum: MPI: A Message-Passing Interface Standard. Version 2.2 (September 4, 2009)

    Google Scholar 

  12. Numrich, R.W., Reid, J.: Co-array Fortran for parallel programming. SIGPLAN Fortran Forum 17(2), 1–31 (1998)

    Article  Google Scholar 

  13. Sarkar, D., Waddell, O., Dybvig, R.K.: A nanopass infrastructure for compiler education. SIGPLAN Not. 39(9), 201–212 (2004)

    Article  MATH  Google Scholar 

  14. UPC Consortium: UPC Language Specification, v1.2 (May 2005), http://upc.lbl.gov/docs/user/upc_spec_1.2.pdf

  15. Valiant, L.G.: A bridging model for parallel computation. Communications of the ACM 33(8), 103–111 (1990)

    Article  Google Scholar 

  16. XcalableMP Specification Working Group: Application Program Interface Version 1, Draft 0.7. Tech. rep. (November 2009)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2011 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Holk, E., Byrd, W.E., Willcock, J., Hoefler, T., Chauhan, A., Lumsdaine, A. (2011). Kanor. In: Rocha, R., Launchbury, J. (eds) Practical Aspects of Declarative Languages. PADL 2011. Lecture Notes in Computer Science, vol 6539. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-18378-2_16

Download citation

  • DOI: https://doi.org/10.1007/978-3-642-18378-2_16

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-642-18377-5

  • Online ISBN: 978-3-642-18378-2

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics