You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Each of you should work on these; with these I am mostly concerned with your learning and don't mind the duplication of work.
Read Formal Abstractions for Packet Scheduling. For a warm-up, you may enjoy this talk about the work. In the paper, I suggest you work through §2, §4.1, §5.1, and §6.1 with care. You can skim the rest. You can skip all the proofs, but try to understand the statements of theorems informally.
Calyx crash course. Our usual advice is to start here, work through the tutorial, and then try your hand at a very simple matrix-multiplier design. Ask lots of questions on the #calyx channel in the group Slack! Eventually please create a pull request containing your work on the Calyx repository.
These days we don't really write Calyx by hand. We tend to generate it using the Calyx eDSL, which is embedded in Python. Carefully work through the little example on that page. Try to change it, break it, fix it! Then move on to the extended walkthrough. Once more, with feeling! For the extended walkthrough, I recommend you have three windows open: the Python code, the Calyx code generated by the Python code, and the documentation explaining various features.
Look over our implementations of FIFOs, PIFOs, and PIFO trees in Calyx. They are documented here, and the docs point to the code.
Quests
The three items below are a little more open-ended. You are of course free to collaborate with each other, but I don't want you to spend your time duplicating this work. So please claim a task (with a partner if you wish) and take a crack at it!
Queues: generalize PIFOs calyxir/calyx#1810 sketches further steps for our basic PIFO. You have studied this already – it can handle fairness among two children and nothing else – but we think it would be interesting to generalize this lightweight PIFO a little.
Tracker: binary heaps calyxir/calyx#2067 tees up a binary heap implementation. I have made some progress towards it, but now's your chance to take it all the way!
See Tracker for PIEO/Calendar Queue Research #9. During discussions with other academics, folks have often pointed us to two additional data structures: PIEO queues and calendar queues. Look into these, teach the team about them, and explore a Calyx implementation.
Staging area
Pause and discuss before going ahead with the following.
The queue structures above have been tested somewhat modestly so far, and it would be nice to expand the test suite before we make the data structures fancier.
Write a DSL that lets users express their scheduling policies, while limiting them to the set of shapes and policies that we can support (the red subset).
Ready for you to start on
Warm-up
Each of you should work on these; with these I am mostly concerned with your learning and don't mind the duplication of work.
#calyxchannel in the group Slack! Eventually please create a pull request containing your work on the Calyx repository.Quests
The three items below are a little more open-ended. You are of course free to collaborate with each other, but I don't want you to spend your time duplicating this work. So please claim a task (with a partner if you wish) and take a crack at it!
Staging area
Pause and discuss before going ahead with the following.