Running GPU jobs¶
Lots of scientific software is starting to make use of Graphical Processing Units (GPUs) for computation instead of traditional CPU cores. This is because GPUs out-perform CPUs for certain mathematical operations.
If you wish to schedule your job on a GPU you need to provide the --gres=gpu
option in your submissions script. The following example schedules a job on a GPU node then lists the GPU card it was assigned.
1 2 3 4 5 6 7 8 |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
|
Note
The maximum number of gpus that can be requested is now 8 on public_gpu
Note
Your GPU enabled application will mostly likely make use of the NVidia CUDA libraries, to load the CUDA module use module load cuda
in your job submission script.
Testing on the GPU¶
Available alongside the shared public gpu queue, the interruptible_gpu partition gives access to all GPUs in CREATE, leading to a larger pool size that serves well as both a mechanism for testing GPU scheduling and making use of unused private resources, as detailed in our scheduler policy.
So it is still important to take note that, although faster scheduling may be facilitated, jobs may be cancelled at anytime.
Additionally, as the interruptible_gpu can be made up of a broad mix of GPU architectures, it may be useful to provide the following --constraint
scheduler option with your job submissions:
1 |
|