Concurrent Clustered Programming

  • Vijay Saraswat
  • Radha Jagadeesan
Part of the Lecture Notes in Computer Science book series (LNCS, volume 3653)

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.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    CILK-5.3 reference manual. Technical report, Supercomputing Technologies Group (2000) Google Scholar
  2. 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. 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)CrossRefGoogle Scholar
  4. 4.
    Numrich, R., Reid, J.: Co-array Fortran for parallel programming. Fortran Forum 17 (1998)Google Scholar
  5. 5.
    El-Ghazawi, T., Carlson, W., Draper, J.: UPC Language Specification v1.1.1. Technical report, George Washington University (2003) Google Scholar
  6. 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. 7.
    (Openmp specifications), www.openmp.org/specs
  8. 8.
    Skjellum, A., Lusk, E., Gropp, W.: Using MPI: Portable Parallel Programming with the Message Passing Iinterface. MIT Press, Cambridge (1999)Google Scholar
  9. 9.
    Gosling, J., Joy, W., Steele, G., Bracha, G.: The Java Language Specification. Addison-Wesley, Reading (2000)Google Scholar
  10. 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. 11.
    Pugh, W.: Java Memory Model and Thread Specification Revision (2004) JSR 133 http://www.jcp.org/en/jsr/detail?id=133
  12. 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)CrossRefGoogle Scholar
  13. 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. 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. 15.
    Harris, T., Fraser, K.: Language support for lightweight transactions. In: OOPSLA, pp. 388–403 (2003)Google Scholar
  16. 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. 17.
    Saraswat, V.: Report on the Experimental Language X10, v0.41. Technical report, IBM Research (2005) Google Scholar
  18. 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. 19.
    Hansen, P.B.: Structured multiprogramming. CACM 15 (1972)Google Scholar
  20. 20.
    Hoare, C.: Monitors: An operating system structuring concept. CACM 17, 549–557 (1974)MATHGoogle Scholar
  21. 21.
    Herlihy, M.: Wait-free synchronization. ACM Transactions on Programming Languages and Systems 13, 124–149 (1991)CrossRefGoogle Scholar
  22. 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. 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)CrossRefGoogle Scholar
  24. 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. 25.
    The java grande forum benchmark suite, www.epcc.ed.ac.uk/javagrande/javag.html
  26. 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. 27.
    Saraswat, V.: Concurrent Constraint Programming. Doctoral Dissertation Award and Logic Programming. MIT Press, Cambridge (1993)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2005

Authors and Affiliations

  • Vijay Saraswat
    • 1
  • Radha Jagadeesan
    • 2
  1. 1.IBM T.J. Watson Research Lab 
  2. 2.School of CTIDePaul University 

Personalised recommendations