I think it makes sense to add ioe in addition to aoe and eoe. But we would need to make them have an ordering when run. For example if a job required more than one of these to be changed at a time, we would first do the infrastructure changes, then aoe, and finally eoe.
I don’t see how ioe would be platform specific since eoe and aoe are not. It does not make sense to change the infrastructure using aoe. Just like it didn’t make sense to use aoe to change the energy state. Hence the addition of eoe. As for use cases other than the KNL, sites may want to reconfigure the network before starting the job. Or they may want to update the settings on a GPU, or change the number of GPUs that are attached to a system if they are using the network attached GPUs. All of these are examples of changing the infrastructure of the node and not the application operating environment. Now can we do this by using aoe, yes. But what happens, if sites decide they want to configure the infrastructure one way while using a different OS versions. This is the scenario that what I would like to avoid.
Anyways, these are my thought that I would like to be considered in the design. If you feel that the best thing to do is implement this as a separate RFE then I am fine with that. However, before you make that decision please consider how much additional work (dev, QA, documentation, deprecate feature, and training) would be required to do this later vs in the initial check in.
Thanks for your consideration of my input.