Course Project

The course project is your opportunity to explore some aspect of real-time systems in more depth. You are strongly encouraged to work with a partner for the project.

Project Ideas

The project for this course may take one of several forms:

  • Paper reproduction: You may reproduce the results in a paper (one of the ones we’re discussing in class or a different one).

  • Paper extension: Maybe there were experiments you felt were missing from a paper, or some future work that sounded manageable and interesting. This is more doable if the authors provide their code, or perhaps if you’re working to extend theoretical results.

  • Programming assignment extension: The programming assignments we’re doing in class are meant to give some simple practice with scheduling decisions and schedulability tests. You could think about how to extend this to incorporate synchronization.

  • Other: Do you have some other idea for a project? If so, stop by Tanya’s student hours to chat about your plans.

In any case, if you’re working with one or more papers, they should be from the last 10-20 years (the more recent, the better) from one of the following conferences: RTSS, RTAS, ECRTS, RTNS, RTCSA, ISORC, EMSOFT. If you want to use a paper from a different conference/venue, talk with Tanya first.

Some more specific ideas to get your wheels spinning:

  • Implement an IDK cascade and compute lambda for a given input sequence.
  • Use the libsmctrl library to implement a simple GPU locking protocol, and demonstrate its use with a set of GPU-using applications.
  • Reproduce the original GPU experiments using the CUDA Scheduling Examiner code.
  • Compare and contrast limited-preemption EDF techniques from limited-preemption fixed-priority scheduling with an example task set and experiments.
  • Utilize Enrico Bini’s Convex Hull code to determine the minimum set of constraints needed to verify uniprocessor EDF schedulability, and run experiments to determine which deadlines matter for random task sets.
  • Evaluate different approaches for generating random task sets, like UUnifast (see Figs. 5, 7, and 9 in the linked paper).
  • Add a limited-preemption EDF scheduler to our assignment code (see assignment P2).
  • Make some changes to the Linux kernel (or another OS kernel) to implement your own scheduling algorithm, and evaluate its impact on response times.
  • Implement response-time analysis for constrained-deadline tasks scheduled with Deadline Monotonic on a uniprocessor system, including blocking terms.
  • Implement a max-flow min-cut algorithm (e.g., Edmonds-Karp) to construct a Cyclic Executive schedule (see Sec. 4.2 of the textbook and assignment W4).

Project Overview

There are five components of the final project:

  1. Project proposal: due Friday Feb. 7th at 10pm, worth 5% of your final project grade

  2. Proposal presentation: in class Monday Feb. 17th, worth 5% of your final project grade

  3. Progress report: due Friday Feb. 28th at 10pm, worth 15% of your final project grade

  4. Final writeup (with optional code): due Wednesday Mar. 12th at 10pm, worth 50% of your final project grade

  5. Final presentation: during our final exam slot Saturday Mar. 15, 3:30-6:00pm, worth 25% of your final project grade

Descriptions of each component are given below.

Project Proposal

Your project proposal is due on Friday, February 7th, at 10pm. You should submit it as a single PDF on Moodle. You only need to submit one for the project, even if you are working with a partner.

Your proposal will likely be about 2 pages, single spaced, and should include the following:

  1. Your names (or a short explanation of why you prefer to work alone).

  2. An overview of your planned work. You should include some amount of detail, especially indicating why your goals are attainable in the time you have. You are not expected to have answers to how you will do your work yet, but you should know what you’re aiming for. Give an overview of what results you’re expecting (e.g., a sketched plot of ideal experimental results). This will likely be about a full page single spaced.

  3. Two or more references (conference papers are good, online videos or tutorials are not sufficient) your work will reference as background materials.

  4. What information you don’t yet have that you still need (questions for me, topics you need to read up on, etc.).

Proposal grading

The proposal will account for 5% of your final project grade. It will be graded on whether the proposal includes all of the requirements listed above (with sufficient detail for each), as well as whether you have detailed an appropriate plan to complete your work in the time you have.

Proposal Presentation

All students are expected to present a brief overview of their proposed work in class on Monday, February 17th. This is meant to both help prepare you for future presentations (coughCompscough) and help you organize your plans as you begin your project.

The duration of your presentation will depend on the number of projects, but it will likely be around 3-5 minutes. (Pairs will present together.)

In this talk, you will need to explain the following:

  1. What is the big idea for your project? You won’t be able to go into much detail, so try to just set up the problem space and give everyone an idea of what you’re exploring.

  2. What do you expect your final results to look like?

  3. How does this all relate to what we’ve been discussing in class?

Proposal presentation grading

Your proposal presentation will account for 5% of your project grade. The grade will be based on whether you identify the above three points in your talk, as well as demonstrate some degree of preparation for the talk itself.

Progress Report

You and your partner will submit a progress report by Friday, Feburary 28th at 10pm. The goal of this report is two-fold: (1) an opportunity to update me with what you’ve been working on and identify any issues heading into your last two weeks of work, and (2) to begin organizing your results into a paper.

Your report should be approximately 2-3 pages (single spaced), submitted as a PDF on Moodle, and contain the following:

  1. A description of what you’ve accomplished so far.

  2. A timeline of the remaining work you have (this should be somewhat detailed, at least to the granularity of a few days).

  3. At least five references related to your project (papers, textbooks, etc.) and a one-sentence explanation of how each relates to your project. Again, online videos are not sufficient references. This is effectively a draft of your “Related Work” section for your final paper.

  4. An outline of what your final paper should look like, and a draft of the abstract and introduction.

  5. Any questions you have that I may be able to answer.

Progress report grading

The progress report is worth 15% of your final project grade. It will be graded on whether you have included all of the requirements listed above (with the appropriate level of detail for each).

Final writeup (and code)

As the culmination of your project (along with the presentation), you will submit a 4-6 page paper in the style of IEEE conference papers (see templates here for both Latex and Word). Here is an example short paper you can emulate. Your paper should have the following sections:

  1. Introduction describing your project

  2. Background information necessary to understand your project, including explanations of references you had to read to complete the project

  3. Method of your work, explaining what you’ve accomplished

  4. Results of your work, usually in the form of one or more graphs/tables of data that you make observations about

  5. Conclusion, including a summary of your work and future directions

Note that you must include references, which do not count towards your page limit.

If your project includes code, you must submit your working code and a detailed README. You should also include any data necessary to reproduce your experiments.

Your final writeup/code should be submitted to Moodle by 10pm on Wednesday, March 12th.

Final writeup/code grading

The writeup (and any associated code) is worth 50% of your project grade. A detailed rubric will be available closer to the due date.

Final Presentation

You (and your partner) will present a talk during our final exam time slot (Saturday March 15th from 3:30-6:00pm). Each talk will be approximately 10 minutes in duration (this depends on the number of groups).

This time will go much faster than you’d expect, so it’d be good to practice the full talk at least once while timing it. Here is a general guideline for what you should cover, assuming a 10-minute talk:

  • Contributions (2 minutes): the goal of your project and what you’ve accomplished

  • Method (5 minutes): a description of what you’ve accomplished, ideally driven by a single simple example

  • Results (2 minutes): a graph or schedule demonstrating your results

  • Future work (1 minute): what you would have done next if you had more time

Final presentation grading

The presentation is worth 25% of your project grade. A detailed rubric will be available closer to the presentation date.