Replicating Data for Better Performances in X10

  • Marina Andrić
  • Rocco De Nicola
  • Alberto Lluch Lafuente
Part of the Lecture Notes in Computer Science book series (LNCS, volume 9560)


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.


Shared Data Tuple Space Atomic Block Read Access Global Address Space 
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 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.

Supplementary material


  1. 1.
    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)Google Scholar
  2. 2.
    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)Google Scholar
  3. 3.
    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)Google Scholar
  4. 4.
    Crafa, S., Cunningham, D., Saraswat, V.A., Shinnar, A., Tardieu, O.: Semantics of (resilient) X10. CoRR, abs/1312.3739 (2013)Google Scholar
  5. 5.
    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)CrossRefGoogle Scholar
  6. 6.
    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) CrossRefGoogle Scholar
  7. 7.
    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) CrossRefGoogle Scholar
  8. 8.
    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)Google Scholar
  9. 9.
    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)zbMATHCrossRefGoogle Scholar
  10. 10.
    Google-Storage: (2015) Web site:
  11. 11.
    Gupta, S., Nandivada, V.K.: Imsuite: a benchmark suite for simulating distributed algorithms. J. Parallel Distrib. Comput. 75, 1–19 (2015)CrossRefGoogle Scholar
  12. 12.
  13. 13.
    Imam, S., Sarkar, V.: A case for cooperative scheduling in X10s managed runtime. In: The 2014 X10 Workshop, X10 2014, June 2014Google Scholar
  14. 14.
    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)Google Scholar
  15. 15.
    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)Google Scholar
  16. 16.
    Open-MPI: (2015) Web site for MPI:
  17. 17.
    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) CrossRefGoogle Scholar
  18. 18.
    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)CrossRefGoogle Scholar

Copyright information

© Springer International Publishing Switzerland 2016

Authors and Affiliations

  • Marina Andrić
    • 1
  • Rocco De Nicola
    • 1
  • Alberto Lluch Lafuente
    • 2
  1. 1.IMT Institute for Advanced Studies LuccaLuccaItaly
  2. 2.DTU ComputeTechnical University of DenmarkKongens LyngbyDenmark

Personalised recommendations