codes-org / codes

The Co-Design of Exascale Storage Architectures (CODES) simulation framework builds upon the ROSS parallel discrete event simulation engine to provide high-performance simulation utilities and models for building scalable distributed systems simulations
Other
40 stars 16 forks source link

Injection pipeline fix: separate injection delay from propagation delay. #204

Closed kevinabrown closed 3 years ago

kevinabrown commented 4 years ago

This should allow multiple flits within the same packet to be pipelined on a link. The injection delay (via the bandwidth) is used to calc the sender's next_available_time after the flit in injected and using the channel delay is used to calc when the flit arrives at next hop. Therefore, a second flit can be injected into the link while the first flit is still in transit on the link.

kevinabrown commented 4 years ago

@nmcglohon This has been tested to work for a single node sending traffic on an empty network (1 flit/packet and multiple-flits/packet). It doesn't change the behavior of sending multiple packets (that seems tied to credits), and we may need to take a closer look at the larger-scale behavior before it is merged.

kevinabrown commented 3 years ago

Cancelling PR. This is being combined with another PR to be sent later.

nmcglo commented 3 years ago

Gotcha, sounds good!