Choose a project by Tuesday, April 14th
Code and report due Thursday, May 7th
Presentations in class Tuesday, May 5th and Thursday, May 7th
You may work individually or with one other person.
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 14th.
- 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
- Implement a strategy game such as Checkers or Go using
a parallel state space search to consider possible moves.
- Dr. Link has some embedded controller boards
supporting ethernet and TCP/IP.
Attach a sensor of some kind (e.g., temperature, light, etc.).
Implement a distributed system using the embedded board
communicating with a "host application" on a PC.
- Measure and tune the performance of the
C++ fork/join framework.
Can you improve the performance? Can you show that the framework allows
efficient parallelization of a range of divide-and-conquer algorithms?
- Implement and benchmark a lock-free data structure using atomic machine instructions.
See Michael Scott's
- Investigate possible solutions to the ABA problem in lock-free data structures.
It is fine for multiple people/groups to work on the same problem.