What a Scheduler Does
Schedules are responsible for the following:
- Enabling effective/efficient utilization of cluster's resources consistent with organization's goals
- Maintaining queue(s) of jobs
- Maximizing throughput of jobs by processing all jobs as quickly as possible (typically, one job per CPU)
- Allowing a choice of various scheduling policies (for example, First Come First Serve, Priority-Based, and Preemption)
- Providing a suite of tools or utilities (graphical or command line) for end users to submit, monitor, suspend, and abort jobs
- Managing a compute cluster by running various interacting services on head nodes and compute nodes
- Providing a programming interface to access services
Scheduler-Managed Compute Cluster
Head node(s) typically maintain queues. Compute nodes are typically on a high speed network to improve scalability of parallel jobs. Services running on nodes interact with each other to manage resources. End user tools communicate with services to manage jobs.