- Introduction
- Available Queues
- Resource Limits
- Job Monitoring
- Help Choosing a Queue
- Help Writing a Job Script
- Where to Find Examples
1. Introduction
Most computations on Hydra are run in batch mode using a job scheduler (aka workload manager).
Hydra uses the Univa Grid Engine (GE or UGE) as the job scheduler:
- Jobs are submitted from either login node to the job scheduler using the command
qsuband a job file; - submitted jobs may wait in the queue:
- until the requested resource(s) is/are available, or
- if a user has reached a resource usage limit, until that limit has cleared.
- The scheduler will eventually run each job, starting it on one or several compute nodes:
- the job will run in batch, not interactive, mode;
- it is the scheduler that selects on which compute(s) node to run a job on, and
- if the job exceeds a limit, like it uses too much memory, or consumes too much CPU time, the scheduler will kill the job.
To run a computation (a job) on Hydra users must write a list of instructions, that specifies the step(s) needed to perform the said computation and if needed pass instructions (aka directives) to the job scheduler as to which resources are required to complete the said computation (like the amount of memory, CPU time, number of CPUs, etc.).
These steps are typically written in a file, aka the job script, while the directives are either passed as options to the qsub command or included in the job script, as embedded directives.
A job is thus submitted with the command qsub, with the required options (or embedded directives) followed by the name of the file containing the job script.
The different types of jobs are:
- serial jobs: computations that use only one CPU;
- parallel jobs: computation that use more than one CPU (either all on the same node, using multi-threading, or distributed across nodes, using message passing)
- job arrays: a set of similar computations, aka tasks, that use a single unique job script file and a number that identifies each task to be performed.
A few compute nodes are set aside for interactive use, consult the section on using the interactive queue.
The Available Queues page describes in detail the available queues.
Every job running on the cluster is started in a queue.
- The GE will select a queue based on the resources requested and the usage in each queue.
- If you don't specify the right queues or the right resource(s), your job will either
- not get queued,
- wait forever and never run, or
- start and get killed when it exceeds one of the limit of the queue it was started in.
The set of available queues is a matrix of queues:
- Four sets of queues: a high-CPU and a high-memory set of queues, complemented by a very-high-memory restricted queue and special queues.
The high-CPU and a high-memory sets of queues have different time limits: short, medium, long and unlimited.
Type
Description
high-CPU for serial or parallel jobs that do not need a lot of memory, high-memory for serial or multi-threaded parallel jobs that require a lot of memory, very-high-memory reserved for jobs that need a very large amount of memory, other for interactive use or projects that need special resources (GPUs, I/O, etc).
Notes
Last Updated SGK