Homework 9DetailsWork alone or in pairs on this assignment.
Complete your parallel implementation of Quicksort.
Your goal is to make it as fast as possible.
Use the test files largeTests.txt and reallyLargeTests.txt
as you are optimizing your code.
When you are satisfied with your implementation,
run runSorts on the file hugeTests.txt and put the results in a file called hugeTestResults.txt.
You should already have the base code, but if not it is here:
QuickSortProject.zip
Note:
There is a version of the notes we are starting this week written for OpenMP instead of Java. They may or may not help you with this assignment, but just in case, you can find them here:
SPAC_CPP.pdf.
Zip up the directory with all of your files and use Webhandin 385-HW9
to submit it.
Submit a hard-copy of a write-up that includes the following.
(Please take the write-up seriously and don't just throw it together at the last minute.)
- A brief description of your algorithm. Focus on how you parallelized it.
- A chart showing its performance against the serial version on the hugeTests.txt file with 2, 4, 8, 12, 16, 24, and 32 threads.
Plot the numbers from the average column using Excel or a similar program so you can see the trend.
- Discuss how the running time scales with the number or processors. Is it what you would expect? Clearly explain, referring to Amdahl's law.
- Give a tight bound on the expected running time of your parallel algorithm assuming you had k cores. Make sure you justify your analysis.
Hint: It may not be exactly what you expect it to be.
- Discuss any limitations of your parallel algorithm.
What is the limiting factor of how much you can parallelize it?
Could it be made faster? If so, explain.
- Grade yourself out of 20 points, providing a clear justification.
For purposes of comparison, here is my output for hugeTests.txt:
In Order Reversed Random Repeated Clumped Average
pQuickP1 No Data No Data 19743513 (7) No Data No Data 19743513 (7)
pQuickP2 No Data No Data 14265134 (7) No Data No Data 14265134 (7)
pQuickP4 No Data No Data 10995513 (7) No Data No Data 10995513 (7)
pQuickP8 No Data No Data 5709799 (7) No Data No Data 5709799 (7)
pQuickP16 No Data No Data 4191602 (7) No Data No Data 4191602 (7)
pQuickP24 No Data No Data 3482685 (7) No Data No Data 3482685 (7)
pQuickP32 No Data No Data 3175726 (7) No Data No Data 3175726 (7)
|