ratt-ru / QuartiCal

CubiCal, but with greater power.
MIT License
8 stars 4 forks source link

Auto-restricting scheduler plugin #62

Closed JSKenyon closed 3 years ago

JSKenyon commented 3 years ago

Yet another alternative to annotation. This is based on comments by @sjperkins in #61.

This is probably the most powerful incarnation yet - it requires zero changes to existing code bar the installation of the plugin. Somewhat distressingly, this renders annotation somewhat pointless as the restrictions can be set directly without annotating layers/tasks. This makes for a lightweight approach that is largely problem agnostic (though there is still a huge amount of room for improvement).

JSKenyon commented 3 years ago

For anyone interested, this is a screen shot of the dashboard without installing the plugin (default): Screenshot from 2021-04-08 11-34-13 And this is a screenshot with the plugin installed: Screenshot from 2021-04-08 11-35-49 Red corresponds to transfers between nodes - this is what we want to avoid.

sjperkins commented 3 years ago

Very cool! Keen to drill into this more next week. I am not distressed by the lack of annotations -- they will have their uses, but obviously the fewer needed the better!

sjperkins commented 3 years ago

I think annotating root and terminal layers and feeding that apriori info into this strategy might be useful for some non-trivial distributed cases.

JSKenyon commented 3 years ago

Interestingly, this now works even with optimization enabled. Pretty cool side effect. I agree that this is nowhere near ready for every case. As you say, maybe annotations become a way to guide a more generic scheduler plugin in complicated cases.

sjperkins commented 3 years ago

Interestingly, this now works even with optimization enabled. Pretty cool side effect.

There are no annotated layers, so no annotations are sent to the scheduler (or processed by the plugins).

I suspect this will break if annotations are re-introduced.

JSKenyon commented 3 years ago

I suspect this will break if annotations are re-introduced.

Of course. But cool in the interim.

JSKenyon commented 3 years ago

I am going to press the button. Known caveats: