Flow control is an essential part of ensuring that fast federates (or federates with fast connections) do not overwhelm slow receivers. The problem is this - a slow SENDER, that is OK for receiving, can get well out of sync with other federates. Although rare, I have encountered this in the TP testing federate!
My laptop's USB3 GB NIC does not have as good of a throughput when sending as it does when receiving. As such, the slow federate is able to receive quickly enough, and then grant more credits to a sender, but it isn't able to match the output pace.
Adding support for timestepped looping will bring all federates to the level of the lowest common denominator.
Acceptance Criteria
Once complete:
[ ] User will be able to specify the --timestepped argument on the command line and the Throughput test federate will go into timestepped mode, advancing time with each step.
Summary
Flow control is an essential part of ensuring that fast federates (or federates with fast connections) do not overwhelm slow receivers. The problem is this - a slow SENDER, that is OK for receiving, can get well out of sync with other federates. Although rare, I have encountered this in the TP testing federate!
My laptop's USB3 GB NIC does not have as good of a throughput when sending as it does when receiving. As such, the slow federate is able to receive quickly enough, and then grant more credits to a sender, but it isn't able to match the output pace.
Adding support for timestepped looping will bring all federates to the level of the lowest common denominator.
Acceptance Criteria
Once complete:
--timestepped
argument on the command line and the Throughput test federate will go into timestepped mode, advancing time with each step.