Parallel Programming Languages Spring 2011
Download and install
an X10 implementation;
choose between the Java-based 1.5 or the Scala-based 2.0.
such that reduce runs in logaritmic time in the number of processors.
Parallel Prefix Computation in X10; it is specified by the Haskell function scanl1
on the first page of the linked paper.
Make your implementation as parallel and efficient as you can.
Implement the algorithm for
May-Happen-in-Parallel Analysis of X10 in
Featherweight X10: a core calculus for async-finish parallelism,
Jonathan K. Lee and Jens Palsberg,
in Proceedings of PPOPP'10, 15th ACM SIGPLAN Annual Symposium on
Principles and Practice of Parallel Programming, Bangalore, India, January 2010;
or take the constraints from
Complexity Results for May-Happen-in-Parallel Analysis,
Jonathan K. Lee, Jens Palsberg, and Rupak Majumdar.
for a subset of X10 called miniX10.
Benchmarks written in miniX10:
MapReduce.x10 (prints 9045050)
Series.x10 (prints nothing)
Here is Main.java for working with jtb and javacc.
Here is my script runall.sh
for running x10 on both MapReduce.x10 and Series.x10.
Here is my script testall.sh
for running Main.java on MapReduce.x10 and Series.x10.
- Here is the X10 1.5 release page.