Running Jobs – The Batch System (SGE)
Note: Users who have been invited to perform early testing of the Slurm batch system, please see here.
Why use a batch system?
All jobs must be run in the batch system (SGE). This allows you to specify the resources (cores, memory, GPUs) you need for your jobs and ensures the jobs only run when those resources become available.
It also ensures fair usage of the system – there are many jobs making different demands of the system and many users submitting jobs. The batch system will schedule your jobs according to resources requested and size of your group’s contribution to the system.
Be kind to the login nodes and other users
Applications should not be run directly on the login nodes. These are relatively small, light-weight nodes (not many cores, small memory) used to access the system, edit files, submit jobs. Many users will be connected to the login nodes. If you run an application there, you may prevent all of those users from doing their work.
The sysadmins will kill, without notice, any applications running on the login nodes, or jobs submitted to batch system which are oversubscribing resources by not setting parallel options properly.
Check the documentation of your application
Every parallel program/code/library has different methods for controlling the number of cores/threads used by it. Please check the documentation so that you know how to run your app correctly. If using an app that is already installed on the CSF, see our Application Documentation – we provide example jobscripts.
Do not log in to compute nodes
If you want to diagnose / debug a problem with your application (e.g., quick test runs, trying different parameters, possibly modifying and recompiling code) without using a batch script, please use an interactive job (see qrsh). Using ssh
to access a compute node is not permitted.
Please take the time to learn how to submit jobs to the batch system.
Batch Tutorial
If you are unfamiliar with running jobs in a batch system please see our 10 minute tutorial on running jobs on the CSF.
Submitting Jobs and Requesting Resources
You will need to write a small jobscript,
gedit myjobscript
which is a simple text file that specifies
- Any additional or specific resources your job needs (number of CPU cores, the architecture/type of CPU, memory, GPUs).
[The default is 1 CPU-core, any Intel CPU type, 4GB RAM, no GPU] - The actual commands / application your job should execute.
Further details on how to write jobscripts, and some example job scripts, are in the sections on serial jobs and parallel jobs. The menu on the left also has pages for more advanced job options. Our software pages also have example jobscripts for each application we have installed.
Then submit the jobscript to the batch system using
qsub myjobscript
You may also wish to check on your job (is it still running?) using
qstat
See the batch commands for more information.