Skip to main content

Semantics of (Resilient) X10

  • Conference paper

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

Abstract

We present a formal small-step structural operational semantics for a large fragment of X10, unifying past work. The fragment covers multiple places, mutable objects on the heap, sequencing, try/catch, async, finish, and at constructs. This model accurately captures the behavior of a large class of concurrent, multi-place X10 programs. Further, we introduce a formal model of resilience in X10. During execution of an X10 program, a place may fail for many reasons. Resilient X10 permits the program to continue executing, losing the data at the failed place, and most of the control state, and repairing the global control state in such a way that key semantic principles hold, the Happens Before Invariance Principle, and the Exception Masking Principle. These principles permit an X10 programmer to write clean code that continues to work in the presence of place failure. The given semantics have additionally been mechanized in Coq.

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. Ahern, A., Yoshida, N.: Formalising java rmi with explicit code mobility. In: OOPSLA 2005, pp. 403–422. ACM, New York (2005)

    Google Scholar 

  2. Akidau, T., Balikov, A., Bekiroglu, K., Chernyak, S., Haberman, J., Lax, R., McVeety, S., Mills, D., Nordstrom, P., Whittle, S.: MillWheel: Fault-Tolerant Stream Processing at Internet Scale. In: Very Large Data Bases, pp. 734–746 (2013)

    Google Scholar 

  3. Amadio, R.M.: An asynchronous model of locality, failure, and process mobility. In: Garlan, D., Le Métayer, D. (eds.) COORDINATION 1997. LNCS, vol. 1282, pp. 374–391. Springer, Heidelberg (1997)

    Chapter  Google Scholar 

  4. Bertot, Y., Castéran, P.: Interactive Theorem Proving and Program Development: Coq’Art: The Calculus of Inductive Constructions. Texts in Theoretical Comp. Sci. Springer (2004)

    Google Scholar 

  5. Bierman, G.M., Parkinson, M.J., Pitts, A.M.: Mj: An imperative core calculus for java and java with effects. Technical report, University of Cambridge Computer Laboratory (2003)

    Google Scholar 

  6. de Boer, F.S., Kok, J.N., Palamidessi, C., Rutten, J.J.M.M.: The failure of failures in a paradigm for asynchronous communication. In: Groote, J.F., Baeten, J.C.M. (eds.) CONCUR 1991. LNCS, vol. 527, pp. 111–126. Springer, Heidelberg (1991)

    Chapter  Google Scholar 

  7. Brookes, S.: Full abstraction for a shared variable parallel language. In: Proceedings of the 8th Annual IEEE Symposium on Logic in Computer Science, pp. 98–109. IEEE Computer Society Press (1993)

    Google Scholar 

  8. Brookes, S.: A semantics for concurrent separation logic. Theor. Comput. Sci. 375(1-3), 227–270 (2007)

    Article  MATH  MathSciNet  Google Scholar 

  9. Charles, P., Grothoff, C., Saraswat, V., Donawa, C., Kielstra, A., Ebcioglu, K., von Praun, C., Sarkar, V.: X10: an object-oriented approach to non-uniform cluster computing. In: OOPSLA 2005, pp. 519–538. ACM, New York (2005)

    Google Scholar 

  10. UPC Consortium, et al.: UPC language specifications. Lawrence Berkeley National Lab Tech Report LBNL–59208 (2005)

    Google Scholar 

  11. Cunningham, D., Grove, D., Herta, B., Iyengar, A., Saraswat, V., Tardieu, O., Kawachiya, K., Murata, H., Takeuchi, M.: Resilien X10: Efficient failure-aware programming. In: PPoPP 2014, pp. 67–80. ACM, New York (2014)

    Google Scholar 

  12. Dayarathna, M., Houngkaew, C., Suzumura, T.: Introducing Scalegraph: an X10 library for billion scale graph analytics. In: X10 2012, pp. 6:1–6:9. ACM, New York (2012)

    Google Scholar 

  13. Dean, J., Ghemawat, S.: Mapreduce: Simplified data processing on large clusters. In: OSDI 2004, p. 10. USENIX Association, Berkeley (2004)

    Google Scholar 

  14. Fournet, C., Gonthier, G., Lévy, J.-J., Maranget, L., Rémy, D.: A calculus of mobile agents. In: Sassone, V., Montanari, U. (eds.) CONCUR 1996. LNCS, vol. 1119, pp. 406–421. Springer, Heidelberg (1996)

    Chapter  Google Scholar 

  15. Francalanza, A., Hennessy, M.: A theory of system behaviour in the presence of node and link failure. Inf. Comput. 206(6), 711–759 (2008)

    Article  MATH  MathSciNet  Google Scholar 

  16. Hennessy, M.: A Distributed Pi-Calculus. Cambridge University Press, New York (2007)

    Google Scholar 

  17. Lee, J.K., Palsberg, J.: Featherweight X10: a core calculus for async-finish parallelism. In: PPoPP 2010, pp. 25–36. ACM, New York (2010)

    Google Scholar 

  18. 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 ACM SIGMOD International Conference on Management of Data, SIGMOD 2010, pp. 135–146. ACM, New York (2010)

    Google Scholar 

  19. Riely, J., Hennessy, M.: Distributed processes and location failures. Theor. Comput. Sci. 266(1-2), 693–735 (2001)

    Article  MATH  MathSciNet  Google Scholar 

  20. Saraswat, V., Bloom, B., Peshansky, I., Tardieu, O., Grove, D.: X10 language specification version 2.2 (March 2012), x10.sourceforge.net/documentation/languagespec/x10-latest.pdf

  21. Saraswat, V.A., Jagadeesan, R.: Concurrent clustered programming. In: Abadi, M., de Alfaro, L. (eds.) CONCUR 2005. LNCS, vol. 3653, pp. 353–367. Springer, Heidelberg (2005)

    Chapter  Google Scholar 

  22. Shinnar, A., Cunningham, D., Saraswat, V., Herta, B.: M3R: increased performance for in-memory Hadoop jobs. Proc. VLDB Endow. 5(12), 1736–1747 (2012)

    Article  Google Scholar 

  23. X10 Global Matrix Library (October 2011), https://x10.svn.sourceforge.net/svnroot/x10/trunk/x10.gml

  24. Yuki, T., Feautrier, P., Rajopadhye, S., Saraswat, V.: Array dataflow analysis for polyhedral x10 programs. In: PPoPP 2013, pp. 23–34. ACM, New York (2013)

    Google Scholar 

  25. Zaharia, M., Chowdhury, M., Franklin, M.J., Shenker, S., Stoica, I.: Spark: cluster computing with working sets. In: HotCloud 2010, p. 10 (2010)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

1 Electronic Supplementary Material

Rights and permissions

Reprints and permissions

Copyright information

© 2014 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Crafa, S., Cunningham, D., Saraswat, V., Shinnar, A., Tardieu, O. (2014). Semantics of (Resilient) X10. In: Jones, R. (eds) ECOOP 2014 – Object-Oriented Programming. ECOOP 2014. Lecture Notes in Computer Science, vol 8586. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-662-44202-9_27

Download citation

  • DOI: https://doi.org/10.1007/978-3-662-44202-9_27

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-662-44201-2

  • Online ISBN: 978-3-662-44202-9

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics