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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Ahern, A., Yoshida, N.: Formalising java rmi with explicit code mobility. In: OOPSLA 2005, pp. 403–422. ACM, New York (2005)
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)
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)
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)
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)
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)
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)
Brookes, S.: A semantics for concurrent separation logic. Theor. Comput. Sci. 375(1-3), 227–270 (2007)
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)
UPC Consortium, et al.: UPC language specifications. Lawrence Berkeley National Lab Tech Report LBNL–59208 (2005)
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)
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)
Dean, J., Ghemawat, S.: Mapreduce: Simplified data processing on large clusters. In: OSDI 2004, p. 10. USENIX Association, Berkeley (2004)
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)
Francalanza, A., Hennessy, M.: A theory of system behaviour in the presence of node and link failure. Inf. Comput. 206(6), 711–759 (2008)
Hennessy, M.: A Distributed Pi-Calculus. Cambridge University Press, New York (2007)
Lee, J.K., Palsberg, J.: Featherweight X10: a core calculus for async-finish parallelism. In: PPoPP 2010, pp. 25–36. ACM, New York (2010)
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)
Riely, J., Hennessy, M.: Distributed processes and location failures. Theor. Comput. Sci. 266(1-2), 693–735 (2001)
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
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)
Shinnar, A., Cunningham, D., Saraswat, V., Herta, B.: M3R: increased performance for in-memory Hadoop jobs. Proc. VLDB Endow. 5(12), 1736–1747 (2012)
X10 Global Matrix Library (October 2011), https://x10.svn.sourceforge.net/svnroot/x10/trunk/x10.gml
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)
Zaharia, M., Chowdhury, M., Franklin, M.J., Shenker, S., Stoica, I.: Spark: cluster computing with working sets. In: HotCloud 2010, p. 10 (2010)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
1 Electronic Supplementary Material
Rights 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)