Motivation
X10/Habanero like Phasers have been added to Java since JDK7. We will gain some experience with using Phasers in a parallel for loop context.
Background
Phaser Javadoc
Guide to the Java Phaser
Mistakes To Avoid
Warning: Phasers are brittle. |
Code to Implement
class: |
ForForallIterativeAverager.java |
|
methods: |
iterativelyAverage |
package: |
iterativeaveraging.studio |
source folder: |
student/src/main/java |
method: public void iterativelyAverage(List<Slice<double[]>> slices, double[] a, double[] b, int iterationCount)
(parallel implementation required)
class: |
ForallForPhasedIterativeAverager.java |
|
methods: |
iterativelyAverage |
package: |
iterativeaveraging.studio |
source folder: |
student/src/main/java |
method: public void iterativelyAverage(List<Slice<double[]>> slices, double[] a, double[] b, int iterationCount)
(parallel implementation required)
Testing Your Solution
Correctness
class: |
IterativeAveragingTestSuite.java |
|
package: |
iterativeaveraging.studio |
source folder: |
testing/src/test/java |
Performance
class: |
IterativeAveragingTiming.java |
|
package: |
iterativeaveraging.studio |
source folder: |
src/main/java |