The HECToR Service is now closed and has been superceded by ARCHER.

Getting the most out of the HECToR batch system

We have recently introduced a number of resources that are designed to allow HECToR users to use the batch system as efficiently as possible:

  • Running multiple jobs simultaneously.
  • Finding where the current space in the queues is.
  • Writing job submission scripts using Perl and Python.

Running multiple jobs simultaneously

HECToR has a restriction that users are only allowed to run a maximum of 4 jobs simultaneously and only have a maximum of 8 jobs in the queues. This can make it difficult to run large sets of similar jobs where, for example, the same calculation is run for a range of input parameters.

We have recently published documentation in the HECToR Optimisation Guide that provide information on two techniques for running many jobs in parallel without infringing on the HECToR queuing policy:

Using multiple 'aprun' commands in a single job script
Using this technique, you can run as many parallel jobs simultaneously as you want from a single job script (which appears as a single job instance to the queue system). You simply need to request enough cores for all of your jobs at the top of the script.
Job arrays
This technique allows you to use a single job submission script to submit multiple jobs that you can refer to by a different index ID number. You will still be limited to a maximum of 4 jobs running concurrently but all your jobs will appear as single instance in the job queue.

Finding where the current space in the queues is

One of the challenges of using the HECToR batch system is that even if there are free resources (in terms of available cores) your job may not run instantly if it is in a queue class that currently has its maximum number of jobs running.

A queue class is a combination of number of cores requested and job time length requested. For example, there is a 4n_12h queue class which contains jobs that have requested 6-12 hours of job time and less than 4 nodes (128 cores) which can have a maximum of 48 jobs running simultaneously.

The HECToR Service Status page now includes a table that lists the current status of all the queues on HECToR. You can use this to alter the length and/or size (possibly by using the multiple aprun technique detailed above) of your job so that it will run as soon as possible.

If you are logged onto HECToR then the same table is available via the queueStatus command.

Writing job submission scripts using Perl and Python

Although BASH is a powerful scripting language in its own right it can sometimes be beneficial to have access to a fuller-featured programming environment to construct complex job submission scripts. The HECToR Optimisation Guide now includes documentation and examples of writing PBS job submission scripts in Perl and Python. See:

If you have any questions please contact the HECToR Helpdesk.