CSCI 3366 (Introduction to Parallel and Distributed Processing), Spring 2011:
Homework 4

Credit:
30 points.

Overview

Your mission for this assignment is write a parallel version of the well-known sorting algorithm quicksort. (If you don't remember the details of quicksort, the Wikipedia article seems reasonable. The algorithm I want you to implement is the one that sorts in place. I also like the discussion here.)

Details

Sequential starter program

To help you get started, I wrote a starter program to test and time the sort.

Comments in the code explain the command-line parameters. You will need to fill in the body of the sort method. Feel free to find code on the Web or in a textbook (though you should try to understand the code you use even if you don't write it yourself), and/or to add additional methods.

Parallel program

Your mission is to write a parallel version of this application that allows you to specify at runtime (via environment variable NUM_THREADS, as in Homeworks 1 and 2) the maximum number of threads to be used.

Performance of parallel program

Once you have working parallel code, experiment with input values until you get a problem size/configuration big enough to make it reasonable to hope for good speedups with multiple UEs. Then time your parallel program for this problem size and different numbers of UEs and plot the results, as in Homework 2.

What to turn in and how

Turn in the following:

Submit source code and other files by sending mail to bmassing@cs.trinity.edu, with each file as an attachment. Please use a subject line that mentions the course number and the assignment (e.g., ``csci 3366 homework 4''). If there's any question of which file(s) correspond to which problems, explain in the body of the mail message. You can develop your programs on any system that provides the needed functionality, but I will test them on one of the department's Fedora Linux machines, so you should probably make sure they work in that environment before turning them in.



Berna Massingill
2011-04-05