The term "macro-level scheduling" refers to finding and recruiting idle workstations and allocating them to various adaptively parallel applications. In this thesis, I have designed and implemented a macro-level scheduler for the Cilk Network of Workstations environment. Cilk-NOW provides the "micro-level scheduling" needed to allow programs to be executed adaptively in parallel on an unreliable network of workstations. This macro-level scheduler is designed to be hassle-free and easy to use and customize. It can tolerate network faults, and it can recover from workstation failures. Idleness can be defined in a highly flexible way, in order to minimize the chances of bothering a workstation's owner, but without losing valuable computation time. The security mechanism employed by the macroscheduler can be adapted to make running unauthorized code essentially as difficult as any given system's existing remote execution protocol makes it. This scheduler is also fair, in that it assigns jobs evenly to the set of available processors. Furthermore, the scheduling algorithm utilizes randomness and primarily local information at each processor to distribute the processors among the jobs. Extensive simulations suggest that this algorithm converges to within one processor per job of the fair allocation within O(log P) steps, where P is the number of processors. Thesis Supervisor: Charles E. Leiserson Title: Professor of Computer Science and Engineering
[1]
R. D. Blumofe.
MANAGING STORAGE FOR MULTITHREADED COMPUTATIONS
,
1992
.
[2]
Jerome H. Saltzer,et al.
Kerberos authentication and authorization system
,
1987
.
[3]
Bradley C. Kuszmaul,et al.
Cilk: an efficient multithreaded runtime system
,
1995,
PPOPP '95.
[4]
Craig A. Knoblock,et al.
Advanced Programming in the UNIX Environment
,
1992,
Addison-Wesley professional computing series.
[5]
Seth Copen Goldstein,et al.
Active Messages: A Mechanism for Integrated Communication and Computation
,
1992,
[1992] Proceedings the 19th Annual International Symposium on Computer Architecture.
[6]
L Nelson Michael,et al.
A Comparison of Queueing, Cluster and Distributed Computing Systems
,
1994
.
[7]
Robert D. Blumofe,et al.
Scheduling large-scale parallel computations on networks of workstations
,
1994,
Proceedings of 3rd IEEE International Symposium on High Performance Distributed Computing.
[8]
W. Richard Stevens,et al.
Unix network programming
,
1990,
CCRV.