Skip to main content

Concurrent Clustered Programming

  • Conference paper
CONCUR 2005 – Concurrency Theory (CONCUR 2005)

Part of the book series: Lecture Notes in Computer Science ((LNTCS,volume 3653))

Included in the following conference series:

Abstract

We present the concurrency and distribution primitives of X10, a modern, statically typed, class-based object-oriented (OO) programming language, designed for high productivity programming of scalable applications on high-end machines. The basic move in the X10 programming model is to reify locality through a notion of place, which hosts multiple data items and activities that operate on them. Aggregate objects (such as arrays) may be distributed across multiple places. Activities may dynamically spawn new activities in mulitple places and sequence them through a finish operation that detects termination of activities. Atomicity is obtained through the use of atomic blocks. Activities may repeatedly detect quiescence of a data-dependent collection of (distributed) activities through a notion of clocks, generalizing barriers. Thus X10 has a handful of orthogonal constructs for space, time, sequencing and atomicity. X10 smoothly combines and generalizes the current dominant paradigms for shared memory computing and message passing.

We present a bisimulation-based operational semantics for X10 building on the formal semantics for “Middleweight Java”. We establish the central theorem of X10: programs without conditional atomic blocks do not deadlock.

We thank Bard Bloom, Philippe Charles, Christopher Donawa, Kemal Ebcioglu, Christian Grothoff, Allan Kielstra, Doug Lea, Maged Michael, Robert O’Callahan, Christoph von Praun, Vivek Sarkar, and Jan Vitek for many discussions on the topic of this paper.

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

Access this chapter

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

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. CILK-5.3 reference manual. Technical report, Supercomputing Technologies Group (2000)

    Google Scholar 

  2. Blumofe, R., Leiserson, C.: Scheduling multithreaded computations by work stealing. In: Proceedings of the 35th Annual Symposium on the Foundations of Computer Science, pp. 356–368 (1994)

    Google Scholar 

  3. Yelick, K.A., Semenzato, L., Pike, G., Miyamoto, C., Liblit, B., Krishnamurthy, A., Hilfinger, P.N., Graham, S.L., Gay, D., Colella, P., Aiken, A.: Titanium: A high-performance java dialect. Concurrency - Practice and Experience 10, 825–836 (1998)

    Article  Google Scholar 

  4. Numrich, R., Reid, J.: Co-array Fortran for parallel programming. Fortran Forum 17 (1998)

    Google Scholar 

  5. El-Ghazawi, T., Carlson, W., Draper, J.: UPC Language Specification v1.1.1. Technical report, George Washington University (2003)

    Google Scholar 

  6. Carlson, W., El-Ghazawi, T., Numrich, B., Yelick, K.: Programming in the Partitioned Global Address Space Model (2003); Presentation at SC (2003), http://www.gwu.edu/upc/tutorials.html

  7. (Openmp specifications), www.openmp.org/specs

  8. Skjellum, A., Lusk, E., Gropp, W.: Using MPI: Portable Parallel Programming with the Message Passing Iinterface. MIT Press, Cambridge (1999)

    Google Scholar 

  9. Gosling, J., Joy, W., Steele, G., Bracha, G.: The Java Language Specification. Addison-Wesley, Reading (2000)

    Google Scholar 

  10. Alexandrescu, A., Boehn, H., Henney, K., Lea, D., Pugh, B.: Memory model for multithreaded c++. Technical report, metalanguage.com (2004) JTC1/SC22/WG21 – C++, Document Number: WG21/N1680=J16/04-0120

    Google Scholar 

  11. Pugh, W.: Java Memory Model and Thread Specification Revision (2004) JSR 133 http://www.jcp.org/en/jsr/detail?id=133

  12. Moreira, J.E., Midkiff, S.P., Gupta, M., Artigas, P.V., Snir, M., Lawrence, R.D.: Java programming for high-performance numerical computing. IBM Systems Journal 39, 21 (2000)

    Article  Google Scholar 

  13. Moreira, J., Midkiff, S., Gupta, M.: A comparison of three approaches to language, compiler, and library support for multidimensional arrays in java computing. In: Proceedings of the ACM Java Grande - ISCOPE 2001 Conference (2001)

    Google Scholar 

  14. Flanagan, C., Freund, S.: Atomizer: A dynamically atomicity checker for multithreaded programs. In: Conference Record of POPL 04: The 31st ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, Venice, Italy, New York, NY (2004)

    Google Scholar 

  15. Harris, T., Fraser, K.: Language support for lightweight transactions. In: OOPSLA, pp. 388–403 (2003)

    Google Scholar 

  16. Harris, T., Herlihy, M., Marlow, S., Jones, S.P.: Composable memory transaction. In: SIGPLAN Symposium on Principles and Practice of Parallel Programming (2005)

    Google Scholar 

  17. Saraswat, V.: Report on the Experimental Language X10, v0.41. Technical report, IBM Research (2005)

    Google Scholar 

  18. Charles, P., Grothoff, C., Donawa, C., Ebcioglu, K., Kielstra, A., von Praun, C., Saraswat, V., Sarkar, V.: X10: An object-oriented approach to non-uniform cluster computing. Technical report, IBM Research (2005) To appear in OOPSLA 2005 Onwards! Track Proceedings

    Google Scholar 

  19. Hansen, P.B.: Structured multiprogramming. CACM 15 (1972)

    Google Scholar 

  20. Hoare, C.: Monitors: An operating system structuring concept. CACM 17, 549–557 (1974)

    MATH  Google Scholar 

  21. Herlihy, M.: Wait-free synchronization. ACM Transactions on Programming Languages and Systems 13, 124–149 (1991)

    Article  Google Scholar 

  22. Michael, M., Scott, M.: Simple, Fast and Practical Non-Blocking and Blocking Concurrent Queue Algorithms. In: Proceedings of the 15th ACM Annual Symposium on Principles of Distributed Computing, pp. 267–275 (1996)

    Google Scholar 

  23. Igarashi, A., Pierce, B.C., Wadler, P.: Featherweight java: a minimal core calculus for java and gj. ACM Trans. Program. Lang. Syst. 23, 396–450 (2001)

    Article  Google Scholar 

  24. Bierman, G.M., Parkinson, M.J., Pitts, A.M.: An imperative core calculus for Java and Java with effects. Technical Report 563, University of Cambridge Computer Laboratory (2003)

    Google Scholar 

  25. The java grande forum benchmark suite, www.epcc.ed.ac.uk/javagrande/javag.html

  26. Saraswat, V., Kahn, K., Shapiro, U., Weinbaum, D.: Detecting stable properties of networks in concurrent logic programming languages. In: Seventh Annual ACM Symposium on Principles of Distributed Computing, pp. 210–222 (1988)

    Google Scholar 

  27. Saraswat, V.: Concurrent Constraint Programming. Doctoral Dissertation Award and Logic Programming. MIT Press, Cambridge (1993)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2005 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Saraswat, V., Jagadeesan, R. (2005). Concurrent Clustered Programming. In: Abadi, M., de Alfaro, L. (eds) CONCUR 2005 – Concurrency Theory. CONCUR 2005. Lecture Notes in Computer Science, vol 3653. Springer, Berlin, Heidelberg. https://doi.org/10.1007/11539452_28

Download citation

  • DOI: https://doi.org/10.1007/11539452_28

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-28309-6

  • Online ISBN: 978-3-540-31934-4

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics