The Australian National University

Josh Milthorpe

X10 Resources

ANUChem

ANUChem is a collection of computational chemistry codes written in the X10 programming language.

Publications

J. Milthorpe, A.P. Rendell and T. Huber PGAS-FMM: Implementing a distributed fast multipole method using the X10 programming language, Concurrency and Computation: Practice and Experience. 2013 doi:10.1002/cpe.3039

J. Milthorpe and A.P. Rendell (2012). Efficient update of ghost regions using active messages (preprint), in proceedings of the 19th IEEE International Conference on High Performance Computing (HiPC). doi:10.1109/HiPC.2012.6507484

J. Milthorpe, V. Ganesh, A.P. Rendell, and D. Grove (2011). X10 as a parallel language for scientific computation: practice and experience (preprint), in proceedings of the 25th IEEE International Parallel & Distributed Processing Symposium (ISBN 978-0-7695-4385-7), 1080-1088. doi:10.1109/IPDPS.2011.103

Zotero logo X10 programming language group on Zotero

Publications using X10 (at x10-lang.org)

Small examples

X10 lattice Boltzmann code adapted from the example Fortran code distributed with Global Arrays as referred to in Palmer & Nieplocha (2002) Efficient algorithms for ghost cell updates on two classes of MPP architectures, PDCS 2002.

Molecular mechanics simulations of a simple harmonic oscillator and a Morse oscillator, as described in Berendsen (2007) "Simulating the Physical World, Hierarchical Modeling from Quantum Mechanics to Fluid Dynamics", 978-0-521-83527-5.

X10 program to compute the Mandelbrot set for an area of the complex plane. Block-distributes the real axis across all places. Uses gnuplot to create an image of the set.

X10 heat transfer benchmark. Uses Jacobi iteration with a five-point stencil to solve for heat distribution on a 2D grid.

X10 binarytrees computer language shootout benchmark for the Computer Language Benchmark Game. A test of memory management (object allocation and garbage collection speed).

Tools

Topology discovery program - prints the hostname and number of threads for each place.
Useful for discovering the topology when running X10 programs over a large number of nodes with various options to MPI, etc.

X10 2.2 language specification for gedit / GtkSourceView

Place x10.lang under /usr/share/gtksourceview-1.0/language-specs or ~/.gnome2/gtksourceview-1.0/language-specs to provide the "X10 Source" syntax highlighting mode.

For full formatting and refactoring support, the tool of choice is the X10DT Eclipse plugin.

X10 2.1 language spec

X10 2.0 language spec

X10 1.7 language spec