Parallel Programming Languages Spring 2011
Homework 1
-
Download and install
an X10 implementation;
choose between the Java-based 1.5 or the Scala-based 2.0.
-
Modify this
MapReduce implementation
such that reduce runs in logaritmic time in the number of processors.
-
Implement
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.
Homework 2
-
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.
Manuscript, 2010.
-
Grammar
(source)
for a subset of X10 called miniX10.
-
Benchmarks written in miniX10:
MapReduce.x10 (prints 9045050)
and
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.