Implicit Coscheduling Implementation Abstract
Scheduling with Implicit Information in Distributed Systems
Implicit coscheduling is a distributed algorithm for time-sharing
communicating processes in a cluster of workstations. By observing and
reacting to implicit information, local schedulers in the system make
independent decisions that dynamically coordinate the scheduling of
communicating processes. The principal mechanism involved is two-phase
spin-blocking: a process waiting for a message response spins for some
amount of time, and then relinquishes the processor if the response does
not arrive.
In this paper, we describe our experience implementing implicit
coscheduling on a cluster of 16 UltraSPARC I workstations; this has led to
contributions in three main areas. First, we more rigorously analyze the two-phase
spin-block algorithm and show that spin time should be increased when a
process is receiving messages. Second, we present performance measurements
for a wide range of synthetic benchmarks and for seven Split-C parallel
applications. Finally, we show how implicit coscheduling behaves under
different job layouts and scaling, and discuss preliminary results for
achieving fairness.
PostScript