POETSII / Orchestrator

The Orchestrator is the configuration and run-time management system for POETS platforms.
1 stars 1 forks source link

Conditional send through doSend is not supported #309

Open m8pple opened 2 years ago

m8pple commented 2 years ago

Some applications request the opportunity to send, but then can choose not to:

https://github.com/POETSII/poets_improvement_proposals/blob/438757c772dfa26cecd56b2856c6c2e180308530/proposed/PIP-0020/virtual-graph-schema-v4.rnc#L500

This is sometimes used when it is expensive to work out when to send (essentially you have to construct the whole packet first), or if you want to do something based on time, so you don't want to do it in the RTS handler. I think Shane also used it in his firefly stuff.

It's also used in the clock_tree_broad and deep apps from the benchmark/stress tests. Probably some others too, I haven't looked at them all. The doSend flag pre-dates OnCompute, which pre-dates OnDeviceIdle, which would cover some use-cases these days.

m8pple commented 2 years ago

Also used in the "airfoil" finite element app from the stress tests. Oh well.

heliosfa commented 2 years ago

I recall looking at this before after we talked about it and thinking it would be "quick win" but then remembered that the buffering mode ADB requested complicated matters. This should not be too difficult to implement once I am off papers.