CS378: Concurrency

Project Proposal

The goal of this assignment is to come up with a plan for your course project.

The project is a more open-ended assignment, where you have the flexibility to pursue an topic or area that interests you. The goal of the first part of this assignment then, is to identify roughly what you will be doing for the rest of the assignment.

I encourage you to come up with your own project idea, but there are suggestions at the end of this assignment for projects for those wishing for more guidance.

You must submit a proposal (1-2 pages long), meeting the guidelines and answering the basic questions enumerated below:

Planning is important. So I will review your proposal and give you feedback. If signficant refinement is needed, I will ask you to hand in a revised proposal in the few weeks after the proposal due date (see syllabus).

You can work in groups for your project.

Project Suggestions

Below are some project suggestions, intentionally not well-fleshed out to leave room for creativity and further refinement by you. I additionally encourage you to engage me in discussion if you have broad areas of interest but are unsure of whether or how to proceed in defining a properly scoped project that explores that area. The most successful projects are almost always driven by genuine interest.

Recreate a result

If you want to recreate and extend a result from a paper, you can do that. Please indicate what paper and exactly how you plan to recreate the experiments and what you hope to learn. This can be an exceptionally valuable endeavor.

Explore Heterogeneity

Emerging hardware such as FPGAs, GPUs, Crypto and Compression co-processors remain a major challenge for programmers because they introduce not just concurrency but multiple programming models and cross-domain communication. Write a program for multiple accelerators.

Transactional Memory

Modern processors from Intel and IBM have support for hardware transactional memory. Can you apply successfully to simplify a non-trivial program, improve its performance, or both?

TensorFlow

Julia, Chapel, X10

Actor Models: Akka