nextupprevious

Cohort Scheduling

Observe that distinct server requests execute similar computations.

Figure 1 shows an example of cohort scheduling relative to threaded execution.

Defer processing a request until a "cohort" of computations are available

Trying to take advantage of code and data locality.

Figure 2 shows that as the number of calls in a cohort increase, there is initially a big reduction in cost per call as measured by CPU cycles and L2 misses.

But deferring too long can defeat the advantages of locality!

Could group thread-based computation to schedule threads with the same next program counter (nPC). Would obtain commonality---certainly in code. May not work well in practice as exact matches may be rare and close matches may not indicates similarity.

"cohorts start after blocking system calls"

"Staged computation provides a programming abstraction that neatly captures both (?) dimensions of cohorts." Data and code locality?