Unlike tightly coupled multiprocessors, scheduling processes of a parallel job onto
various nodes of a cluster is more challenging due to the individual node autonomy.
For improving the performance of parallel applications on cluster platforms, several
communication driven coscheduling techniques (Dynamic Coscheduling, Spin Block, Pe
riodic Boost and Coordinated Coscheduling) have been proposed [53, 14, 69, 35, 70, 3, 27].
With a communication driven coscheduling algorithm, the local scheduler at each node
coordinates the parallel jobs through local events that give implicit clues for scheduling
the parallel processes of an application. All coscheduling algorithms rely primarily on
one of the two local events (arrival of a message and wait for a message) to determine
when and which process to schedule.
For example, in the spin block (SB) algorithm, a process waiting for a message
spins for a fixed amount of time before blocking itself, hoping that the corresponding
process is coscheduled at the remote node [14, 53]. Dynamic coscheduling algorithm
(DCS), on the other hand, uses incoming messages to schedule the process for which the
messages are destined . The underlying idea is that there is a high probability that the
corresponding sender is scheduled at the remote node, and thus, both the processes can
be scheduled simultaneously. A comprehensive study of all prior schemes is reported in
. The advantage of coscheduling algorithms in reducing the execution time of parallel
applications has been documented in several papers [53, 14, 69, 35, 70, 3, 27]. However,
coscheduling has not been used for designing Web servers, and this is the main theme of