Replicating Data for Better Performances in X10
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.
KeywordsShared Data Tuple Space Atomic Block Read Access Global Address Space
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.
- 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.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.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.Crafa, S., Cunningham, D., Saraswat, V.A., Shinnar, A., Tardieu, O.: Semantics of (resilient) X10. CoRR, abs/1312.3739 (2013)Google Scholar
- 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
- 10.Google-Storage: (2015) Web site: https://cloud.google.com/storage/
- 12.IBM: (2015) Web site for X10: http://x10-lang.org/x10-community/publications-using-x10.html
- 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.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.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.Open-MPI: (2015) Web site for MPI: http://www.open-mpi.org/