Parallelization
Get the Assignment Code
Login to your university Unix account and copy the assignment code to a location under your home directory:
cp -r /export/home/public/schwesin/cpsc543/assignments/project2 LOCATION
where LOCATION is a directory of your choosing.
Overview
Perform all test execution on arya to avoid any platform-dependent output
differences.
Here are the files of interest in this project directory. These are listed in
order of STUDENT worklets. The first three active classes require
synchronization of two adjacent uses of a PrintStream file, see STUDENT
1-3 comments.
DistributionGenerator.java: First stage active class that invokes one of the Make* generators.StatisticalAnalysisGenerator.java: Second stage active class that analyzes and reduces stage 1's output.StatisticalAnalysisCSVSaver.java: Third stage in pipeline writes entries to a CSV file for diffing.
There are two versions of the main pipeline constructor. You must update the second in STUDENT 4.
ParallelDataflow.java: Pipeline builder and main per Figure 1 below.make test0tests this configuration of Figure 1.VeryParallelDataflow.java: Parallel pipelines builder and main per Figure 2 below. STUDENT 4.make test1tests this configuration of Figure 2.make clean testtests them both.make testsingletests the no-threads (main thread only) configuration of Figure 1.runtest.sh: Test driver shell script, your STUDENT 5 is in here.jcip-annotations.jar: Annotations for the textbook denote design intent.
You will make no changes to these updated files:
MakeUniform.java: Makes a uniform distribution of pseudo-random numbers. It requires added field modifiers to make it thread-safe and some annotations.MakeNormal.java: Makes a normal distribution of pseudo-random numbers. It requires added field modifiers to make it thread-safe and some annotations.MakeExponential.java: Makes an exponential distribution of pseudo-random numbers. It requires added field modifiers to make it thread-safe and some annotations.TenTuple.java: A simple, immutable data container.FiveTuple.java: Slightly more complicated immutable data container.
There is at least one BlockingQueue concrete class that does not work out of
the box. You just have to document any that do not work per STUDENT 5. Extra
work was done to make them work.
Turning in the Assignment
For this assignment, you must turn in a zip file of a directory
named project2 containing your edited files. Submit the zip file to
the appropriate folder on D2L.
Figure 1: Dataflow for ParallelDataflow.java

Figure 2: Dataflow for CSC543s24VeryParallelDataflow.java
