What is a batch job?
A batch job is a computer program or set of programs processed in batch mode. This means that a sequence of commands to be executed by the operating system is listed in a file (often called a batch file, command file, or shell script) and submitted for execution as a single unit. The opposite of a batch job is interactive processing, in which a user enters individual commands to be processed immediately.
In many cases, batch jobs accumulate during working hours, and are then executed during the evening or another time the computer is idle. This is often the best way to run programs that place heavy demands on the computer.
On high-performance compute clusters, users typically submit batch jobs to queues, which are classes of compute nodes, managed by a resource manager, such as LoadLeveler and TORQUE (also known as Portable Batch System). Frequently, clusters employ separate job schedulers, such as Moab, to dispatch batch jobs based on the availability of compute resources, job requirements specified by users, and usage policies set by cluster administrators.
At Indiana University, the Big Red II, Mason, and Quarry research computing systems use TORQUE for job submission and Moab for scheduling jobs. Rockhopper uses Sun Grid Engine (SGE) for both job submission and scheduling. For more, see Common commands in TORQUE and SGE.
To see which resource managers and job schedulers are used on various Extreme Science and Engineering Discovery Environment (XSEDE) clusters, see On XSEDE compute systems, what applications are used for scheduling jobs?
This document was developed with support from National Science Foundation (NSF) grant OCI-1053575. Any opinions, findings, and conclusions or recommendations expressed in this material are those of the author(s) and do not necessarily reflect the views of the NSF.
Last modified on November 04, 2013.