Job scheduler
From Wikipedia, the free encyclopedia
A job scheduler is a software application that is in charge of unattended background executions, commonly known as batch processing. This type of software is often known as batch queue manager because batch queues are commonly used to prioritize execution of multiple jobs. Job schedulers are also sometimes known as a distributed resource manager or batch scheduler.
Contents |
[edit] Overview
Basic features expected of job scheduler software are:
- Interfaces to define workflows and/or job dependencies
- Automatic submission of executions
- Interfaces to monitor the executions
- Priorities and/or queues to control the execution order of unrelated jobs
If software from a completely different area includes all or some of those features, this software has job scheduling capabilities.
Many programs such as DBMS, backup, ERPs, and BPM include relevant job scheduling capabilities.
[edit] Main concepts
There are many concepts that are central to almost every job scheduler implementation and that are widely recognised with minimal variations:
- Jobs
- Dependencies
- Job Streams
- Users
Two major architectures exist for Job Scheduling software.
- Master/Agent architecture — the historic architecture for Job scheduling software. The Job Scheduling software is installed on a single machine (Master) while on production machines only a very small component is installed (Agent) that waits commands from the Master, executes them, and returns the exit code back to the Master.
- Cooperative architecture — a decentralized model where each machine is capable of helping with scheduling and can offload locally scheduled jobs to other cooperating machines.
[edit] History
From a historical point of view, we can distinguish two main eras about Job Schedulers:
- The mainframe era
- The open system era
- modern schedulers on a variety of architectures and operating systems
[edit] Scheduling
Various schemes are used to decide which particular job to run. Parameters that might be considered include:
- job priority
- compute resource availability
- license key if job is using licensed software
- execution time allocated to user
- number of simultaneous jobs allowed for a user
- estimated execution time
- elapsed execution time
[edit] External Links
- Job Scheduling Portal - List of all commercial and open source job scheduling software, forums, news.
[edit] Commercial
- Global ECS Job Scheduler - an enterprise job scheduling solution from Vinzant Software.
- ActiveBatch Job Scheduling - from Advanced Systems Concepts for Business Process Automation.
- Argent Job Scheduler - an enterprise batch job scheduling solution from Argent Software
- CA Unicenter Autosys Job Management
- Control-M - from BMC Software
- Cronacle - An event driven job scheduling implementation by Redwood Software.
- Dollar Universe : Enterprise Workload Automation - from Orsyp
- Flux — Java Job Scheduler. File Transfer. Workflow Engine.
- AppWorx Job Scheduler - an enterprise job scheduler with many supported applications.
- Grid MP
- LoadLeveler
- Platform LSF (Load Sharing Facility)
- N1 Grid Engine — commercial version of Sun GridEngine
- UC4 - from UC4 Software
- Xgrid — Controller within the commercial version of Apple Computer's Xgrid
- PBS Pro — commercial version of Portable Batch System
- Moab - commercial derivative of Maui Cluster Scheduler
[edit] Open source
- Condor cycle scavenger
- Open Source Job Schedulers in Java
- Diogene87 project
- Saturn project
- Job Scheduler
- jBatchEngine -event driven Batch Job Spooler
- Globus Toolkit
- OpenPBS — open version of Portable Batch System
- Sun GridEngine
- TORQUE Resource Manager — an opensource fork of OpenPBS
- Maui Cluster Scheduler - An advanced job scheduler for use on clusters with resource managers such as Grid Engine, PBS Pro, Torque or LSF.
- OAR -A job scheduler with support of advanced and complex resource management functions.