cucapra / packet-scheduling

MIT License
3 stars 0 forks source link

Tracker for PIEO tree compilation #17

Open polybeandip opened 3 months ago

polybeandip commented 3 months ago

@anshumanmohan describes a natural extension of Formal Abstractions' compilation procedure to handle non-work conserving behavior in discussion #16. The hope is that we can simply swap PIFOs in our tree for PIEOs to allow packets to live in our PIEO tree while remaining invisible until they're ready.

See issue #12 for an introduction to @KabirSamsi's work on PIEOs.

This issue is a concrete plan for formalizing PIEO trees and implementing them at the software level.

Extend Formal Abstractions for Packet Scheduling

Each of these tasks map cleanly to parts of Formal Abstractions, which are noted accordingly.

Done via #35

Extend pifo-trees-artifact

Done via #1 in schedulers-in-ocaml

anshumanmohan commented 3 months ago

Thanks for getting this down; super helpful! I'm super excited, especially if it just works as elegantly as I am hoping. One quick thing to add after your last bullet point: test compilation "by eye", by generating scheduling graphs in the style of Formal Abstractions. That is:

  1. Write a NWC algorithm using one tree shape, make a picture, and debug the algorithm until the picture looks convincing.
  2. Compile to a different tree shape and make the same picture from that.

Please just edit your text above directly to include this.

In silly logistical land: feel free to convert certain bullet points into issues of their own and then assign them to yourself. I'll show you how in a sec!

anshumanmohan commented 3 months ago

@polybeandip for the fork under cucapra, try this?

polybeandip commented 2 months ago

For completeness and the benefit of others reading this, here's the fork.