Projects

Projects:

- Proposal due March 27, 23:59, 10% of project (5% of final grade). Proposal is 2 pages max

- Poster session on May 1st, 11am-2pm. It will be at the Wozniak Lounge (430-438 Soda).

- Project final report length limit: 10 pages, single-column standard latex. Due data May 8th. This is a strict deadline as we need to finish grading by the final grades due date.

- Max group size: three people (no major/grad/ugrad group restrictions)

You are encouraged to discuss your preliminary project ideas with instructors. Aydin will host the following standing office hours for project discussions but if you also would like to discuss with other instructors, just request an appointment.

  • Friday March 9, 11am-1pm, Soda 564
  • Wednesday March 14, 1-3pm, Soda 564
  • Tuesday March 20, 3-5pm, Soda 564


Grading

Below are components that will make up your project grade and the first two components are the most important:

(1) Practical content/creativity; implementation/tuning effort

(2) Experimental data: scaling/performance analysis/interesting inputs or outputs

(3) Theoretic content/creativity; design/analysis of algorithms

(4) Impact: difficulty and timeliness of the contribution

We understand that not all projects will have all four components but it is expected that the first two components will be present in all projects. As such, we expect the majority of your final report to be about parallelism, and not the problem description.


Here are videos of oral presentations from previous years:


You are welcome and encouraged to have your own project ideas. This is especially true if you want to bring parallelism to your ongoing research projects. In addition, we (as the CS267 team) have a few potential ideas below:

Some New Project Ideas for Spring 2018:

  1. Performance benchmarks comparing UPC++ with MPI RMA. Scott Baden is patron. Experience with MPI or other distributed communication frameworks desired, C/C++ knowledge required. Ben could also help mentor.
  2. Develop a distributed data structure for UPC++. Ben (and presumably also UPC++ people) can help mentor.
  3. Implement a NumPy-like Python DSL that runs in distributed memory and calls Elemental or ScaLAPACK. Ben can help mentor.
  4. Implement communication avoiding CNNs (https://arxiv.org/abs/1802.06905) - Grace is willing to help mentor on the theory side of things
  5. Implementation of communication-avoiding coordinate descent on Apache Spark - Aditya can mentor.
  6. Performance evaluation and benchmark study of multi-threaded MPI vs. single-threaded MPI + OpenMP - Conversation between Aydin and Aditya.
  7. Implement communication-avoiding algorithms for Least Angle Regression - Kimon can mentor.
  8. Integrated model and data (batch + domain) parallelism for training deep neural networks (https://arxiv.org/abs/1712.04432) - Aydin can mentor on both theory and implementation avenues.
  9. Distributed suffix trees/arrays for sequence to sequence alignment, especially for weak similarities (http://last.cbrc.jp). Aydin and Kathy can mentor