YCP Logo Assignment 5: Research Project

Choose a project by Tuesday, April 12th

Code and report due Thursday, May 5th

Presentations in class Tuesday, May 3rd and Thursday, May 5th

Your Task

You may work individually or in groups of 2 or 3.

Research a topic in parallel or distributed computing. Write a program to demonstrate the technique or algorithm you have researched. Run experiments to analyze the performance/behavior of the program. Write a report summarizing your findings. Give an oral presentation in to present your findings to the rest of the class.

You should discuss your project idea with me no later than Tuesday, April 12th.

General Topic Ideas

  • Find a parallel algorithm and implement it using pthreads or MPI
  • Implement a distributed system (in which processes communicate over a network) using TCP/IP
  • Design and implement a parallel algorithm using pthreads or MPI

Some Specific Ideas

  • Implement a strategy game such as Checkers or Go using a parallel state space search to consider possible moves.
  • Implement and benchmark a lock-free data structure using atomic machine instructions. See Michael Scott's High-performance synchronization web page.
  • Use GPGPU computation to implement a parallel algorithm.
  • Implement a 2-processor merge algorithm where one thread starts at the beginning of the arrays being merged, and the second thread starts at the end. Is it possible to make this faster than a sequential merge?

It is fine for multiple people/groups to work on the same problem.


Upload a zip file containing your code and your report to the Marmoset server as assign5: