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 TORQUE (based on OpenPBS). 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.

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) grants 1053575 and 1548562. Any opinions, findings, conclusions, or recommendations expressed in this material are those of the author(s) and do not necessarily reflect the views of the NSF.