From testing on FORDYCA, I got a 10-15% performance boost from running with
PGO. Additional gains may be possible if I also do this with ARGoS.
Integrating this into stage 2 (probably would be stage 2a, and then stage 2b
would be what I have now), and automating it could provide some nice
performance gains on MSI. Would be worth it for the largest scale simulations
(10,000 robots or more), in order to squeeze absolute maximum performance
out.
Each controller would need its own version of ARGoS (in its directory within
--sierra-root). One of the primary benifits of PGO I think is the compiler
knowing loop counts, which would vary by swarm sizes, so it would need to be
able to be enabled/disabled for each swarm size (a good option would be to be
able to enable it if the swarm size was above a set threshold).
The PGO generation run would not need to be long (100 timesteps/10 min or
something similar).
Compilation/cmake command should either be a command line parameter or should
be read from a config file.
From testing on FORDYCA, I got a 10-15% performance boost from running with PGO. Additional gains may be possible if I also do this with ARGoS.
Integrating this into stage 2 (probably would be stage 2a, and then stage 2b would be what I have now), and automating it could provide some nice performance gains on MSI. Would be worth it for the largest scale simulations (10,000 robots or more), in order to squeeze absolute maximum performance out.
Each controller would need its own version of ARGoS (in its directory within --sierra-root). One of the primary benifits of PGO I think is the compiler knowing loop counts, which would vary by swarm sizes, so it would need to be able to be enabled/disabled for each swarm size (a good option would be to be able to enable it if the swarm size was above a set threshold).
The PGO generation run would not need to be long (100 timesteps/10 min or something similar).
Compilation/cmake command should either be a command line parameter or should be read from a config file.