Remove inter-round collect info step in scheduler#1258
Remove inter-round collect info step in scheduler#1258robgjansen merged 1 commit intoshadow:mainfrom robgjansen:next-event-time
Conversation
|
@sporksmith Sorry, I couldn't resist removing the linear scan over the LPs between rounds :) I'm done now. What do you think about moving the |
sporksmith
left a comment
There was a problem hiding this comment.
What do you think about moving the roundEndTimes and minEventTimes arrays into the LogicalProcessor module, since we are storing one per logical processor anyway? I looked and it seemed a bit out of place there, but it might make sense to move it there for organization?
I mildly prefer as you have it now. Right now LogicalProcessor is mostly decoupled from the workers and scheduler. I considered even having it manipulate void* instead of Worker* but decided it wasn't worth the extra casting since we'll only use Worker* in practice :). (Maybe if we had C++ templates or Rust generics)
We stop waking threads up in between rounds in order to compute the minimum next event time. Instead we keep track of the min time during the execution of the round. When using the work-stealing scheduler, we manage spinning on the isStealable initialization flag without doing a linear scan over the threads in between rounds to reset the flag. closes #1249
We stop waking threads up in between rounds in order to compute
the minimum next event time. Instead we keep track of the min time
during the execution of the round.
Closes #1249