Abstract
Linguistic primitives for replica-aware coordination offer suitable solutions to the challenging problems of data distribution and locality in large-scale high-performance computing. The data replication mechanisms that had previously been designed to extend Klaim with replicated tuples are now used to experiment with X10, a parallel programming language primarily targeting clusters of multi-core processors linked in a large-scale system via high-performance networks. Our approach aims at allowing the programmer to specify and coordinate the replication of shared data items by taking into account the desired consistency properties. The programmer can hence exploit such flexible mechanisms to adapt data distribution and locality to the needs of the application, in order to improve performance in terms of concurrency and data access. We investigate issues related to replica consistency and provide a performance analysis, which includes scenarios where replica-based specifications and relaxed consistency provide significant performance gains.
Keywords
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.
This is a preview of subscription content, log in via an institution.
Buying options
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsReferences
Andrić, M., De Nicola, R., Lluch Lafuente, A.: Replica-based high-performance tuple space computing. In: Holvoet, T., Viroli, M. (eds.) Coordination Models and Languages. LNCS, vol. 9037, pp. 3–18. Springer, Heidelberg (2015)
Bouajjani, A., Enea, C., Hamza, J.: Verifying eventual consistency of optimistic replication systems. In: Jagannathan, S., Sewell, P., (eds.) Proceedings of the 41st Annual ACM, POPL 2014, pp. 285–296. ACM (2014)
Cogumbreiro, T., Hu, R., Martins, F., Yoshida, N.: Dynamic deadlock verification for general barrier synchronisation. In: Cohen, A., Grove, D., (eds.) Proceedings of the 20th ACM Symposium on Principles and Practice of Parallel Programming, PPoPP 2015, pp. 150–160. ACM (2015)
Crafa, S., Cunningham, D., Saraswat, V.A., Shinnar, A., Tardieu, O.: Semantics of (resilient) X10. CoRR, abs/1312.3739 (2013)
De Nicola, R., Ferrari, G., Pugliese, R.: KLAIM: a kernel language for agents interaction and mobility. IEEE Trans. Softw. Eng. 24(5), 315–330 (1998)
Dobson, S.A., Wadsworth, C.P.: Towards a theory of shared data in distributed systems. In: Jelly, I., Gorton, I., Croll, P.R. (eds.) Software Engineering for Parallel and Distributed Systems, pp. 170–182. Chapman & Hall, Boca Raton (1996)
Fekete, A.D., Ramamritham, K.: Consistency models for replicated data. In: Charron-Bost, B., Pedone, F., Schiper, A. (eds.) Replication: Theory and Practice. LNCS, vol. 5959, pp. 1–17. Springer, Heidelberg (2010)
Gligoric, M., Mehlitz, P.C., Marinov, D.: X10X: model checking a new programming language with an “old” model checker. In: Antoniol, G., Bertolino, A., Labiche, Y., (eds.) 2012 IEEE Fifth International Conference, pp. 11–20. IEEE Computer Society (2012)
Goodeve, D., Dobson, S., Nash, J., Davy, J., Dew, P., Kara, M., Wadsworth, C.P.: Towards a model for shared data abstraction with performance. J. Parallel Distrib. Comput. 49, 156–167 (1998)
Google-Storage: (2015) Web site: https://cloud.google.com/storage/
Gupta, S., Nandivada, V.K.: Imsuite: a benchmark suite for simulating distributed algorithms. J. Parallel Distrib. Comput. 75, 1–19 (2015)
IBM: (2015) Web site for X10: http://x10-lang.org/x10-community/publications-using-x10.html
Imam, S., Sarkar, V.: A case for cooperative scheduling in X10s managed runtime. In: The 2014 X10 Workshop, X10 2014, June 2014
Kumar, V., Hendren, L.J.: MIX10: compiling MATLAB to X10 for high performance. In: Black, A.P., Millstein, T.D., (eds.) Proceedings of the 2014 ACM International Conference, OOPSLA 2014, pp. 617–636. ACM (2014)
Lee, J.K., Palsberg, J.: Featherweight X10: a core calculus for async-finish parallelism. In: Govindarajan, R., Padua, D.A., Hall, M.W., (eds.) Proceedings of the 15th ACM SIGPLAN, pp. 25–36. ACM (2010)
Open-MPI: (2015) Web site for MPI: http://www.open-mpi.org/
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)
Yelick, K.A., Semenzato, L., Pike, G., Miyamot, C., Liblit, B., Krishnamurthy, A., Hilfinger, P.N., Graham, S.L., Gay, D., Colella, P., Aiken, A.: Titanium: a high-performance java dialect. Concurrency Pract. Experience 10(11–13), 825–836 (1998)
Acknowledgment
This research has been supported by the European projects IP 257414 ASCENS and STReP 600708 QUANTICOL, and by the Italian project PRIN 2010LHT4KM CINA. We are grateful to the managers of the (High Performance) Computing services of IMT and DTU for their support to our experimental investigations and we would like to thank the editors of this volume for giving us the possibility of contributing. Most of all, we would like to thank Hanne and Flemming for all the discussions we have had on many occasions and for believing in the usefulness of Klaim, sometimes even more than its inventors. Without their interest in that language this paper would have never been written.
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
A Results for Eight-Places Scenario
A Results for Eight-Places Scenario
Rights and permissions
Copyright information
© 2016 Springer International Publishing Switzerland
About this chapter
Cite this chapter
Andrić, M., De Nicola, R., Lluch Lafuente, A. (2016). Replicating Data for Better Performances in X10. In: Probst, C., Hankin, C., Hansen, R. (eds) Semantics, Logics, and Calculi. Lecture Notes in Computer Science(), vol 9560. Springer, Cham. https://doi.org/10.1007/978-3-319-27810-0_12
Download citation
DOI: https://doi.org/10.1007/978-3-319-27810-0_12
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-319-27809-4
Online ISBN: 978-3-319-27810-0
eBook Packages: Computer ScienceComputer Science (R0)