Supporting Array Programming in X10

Effective support for array-based programming has long been one of the central design concerns of the X10 programming language. After significant research and exploration, X10 has adopted an approach based on providing arrays via user definable and extensible class libraries. This paper surveys the range of array abstractions available to the programmer in X10 2.4 and describes the key language features and language implementation techniques necessary to make efficient and productive implementations of these abstractions possible.

[1]  Ed Anderson,et al.  LAPACK users' guide - [release 1.0] , 1992 .

[2]  David Grove,et al.  X10 as a Parallel Language for Scientific Computation: Practice and Experience , 2011, 2011 IEEE International Parallel & Distributed Processing Symposium.

[3]  Shirish Tatikonda,et al.  SystemML: Declarative machine learning on MapReduce , 2011, 2011 IEEE 27th International Conference on Data Engineering.

[4]  Laurie J. Hendren,et al.  MIX10: compiling MATLAB to X10 for high performance , 2014, OOPSLA.

[5]  Sreedhar B. Kodali,et al.  The Asynchronous Partitioned Global Address Space Model , 2010 .

[6]  David Cunningham,et al.  X10 and APGAS at Petascale , 2016, ACM Trans. Parallel Comput..

[7]  H. Sebastian Seung,et al.  Algorithms for Non-negative Matrix Factorization , 2000, NIPS.

[8]  Josh Milthorpe,et al.  Resolutions of the Coulomb Operator: VII. Evaluation of Long-Range Coulomb and Exchange Matrices. , 2013, Journal of chemical theory and computation.

[9]  Rajeev Motwani,et al.  The PageRank Citation Ranking : Bringing Order to the Web , 1999, WWW 1999.

[10]  Radha Jagadeesan,et al.  Concurrent Clustered Programming , 2005, CONCUR.

[11]  B. Chamberlain,et al.  Authoring User-Defined Domain Maps in Chapel ∗ , 2011 .

[12]  J. Demmel,et al.  Sun Microsystems , 1996 .

[13]  Alistair P. Rendell,et al.  Resolutions of the Coulomb operator: VIII. Parallel implementation using the modern programming language X10 , 2014, J. Comput. Chem..

[14]  Vivek Sarkar,et al.  X10: an object-oriented approach to non-uniform cluster computing , 2005, OOPSLA '05.

[15]  Laurie J. Hendren,et al.  First steps to compiling Matlab to X10 , 2013, X10 '13.

[16]  Ed Anderson,et al.  LAPACK Users' Guide , 1995 .