DEPRECATED
Check Julia 2 documentation instead!
SLURM Introduction
The SLURM Nodes of Julia HPC are currently using Debian 10 (Codename "Buster") as operating system. Detailed documentation on SLURM can be found at slurm.schedmd.com
Login
Login via SSH (German SSH HowTo) to julia.uni-wuerzburg.de.
You will find yourself in your home directory of the cluster environment. Now you can start to:
- setup and compile your code
- write job scripts and run jobs through SLURM
The latter point is what this documentation is about.
A note on data transfer
If you need to copy a lot of data, e.g. simulation results or analysis data, please use julia-storage.uni-wuerzburg.de for the data transfer.
User data is available the same way as on the regular cluster headnode.
However, the storage machine has dedicated interfaces to both the storage backend and the university network.
You can login via SSH (just the same way as above), and transfer files using scp or rsync.
The cluster environment
Compute nodes within SLURM are generally referenced by name. On Julia HPC, the following nodes are available:
cn10g-05tocn10g-24, andcn10g-45tocn10g-52cnib-01tocnib-07gpu1andgpu2fat2tofat4cntest1andcntest2are virtual machines for running short jobs to see if your program runs properly
The Queue
SLURM builds a queue of all submitted jobs and uses a scheduling algorithm to decide which job can run at which time on which node.
The command squeue gives an overview of jobs that are currently running (state R) or pending in the queue (state PD).
A normal user will only be able to see their own jobs here, administrators see all jobs.
An example could look like this:
$ squeue
JOBID PARTITION NAME USER ST TIME NODES NODELIST(REASON)
110 standard someJob user-01 PD 0:00 1 (Resources)
97 standard foobar user-02 R 1-01:00:50 16 cn10g-[05-20]
96 gpu barbaz user-02 R 3:32:34 2 gpu[1-2]
95 standard whatever user-02 R 1-01:55:01 4 cn10g-[21-24]
Pending jobs are assigned a priority value which is frequently recalculated based on a number of factors, see the job priority page for details.
The job with the highest priority is supposed to run as soon as there are sufficient resources available. Jobs with lower priority have to wait unless they don't delay the start of a higher priority job, e.g. they use different nodes or are short and finish anyway before the other jobs begins.
Overall status of the cluster
Run sinfo to get a general overview of the current state of the cluster. Example:
$ sinfo
PARTITION AVAIL TIMELIMIT NODES STATE NODELIST
standard* up 2-00:00:00 4 mix cn10g-[23-24,51-52]
standard* up 2-00:00:00 31 alloc cn10g-[05-22,45-50],cnib-[01-07]
gpu up 2-00:00:00 2 idle gpu[1-2]
fat up 2-00:00:00 2 alloc fat[2-3]
fat up 2-00:00:00 1 idle fat4
short up 12:00:00 4 mix cn10g-[23-24,51-52]
short up 12:00:00 31 alloc cn10g-[05-22,45-50],cnib-[01-07]
short-gpu up 12:00:00 2 idle gpu[1-2]
short-fat up 12:00:00 2 alloc fat[2-3]
short-fat up 12:00:00 1 idle fat4
long up 7-00:00:00 4 mix cn10g-[23-24,51-52]
long up 7-00:00:00 31 alloc cn10g-[05-22,45-50],cnib-[01-07]
long-gpu up 7-00:00:00 2 idle gpu[1-2]
long-fat up 7-00:00:00 2 alloc fat[2-3]
long-fat up 7-00:00:00 1 idle fat4
ultra up 30-00:00:0 4 mix cn10g-[23-24,51-52]
ultra up 30-00:00:0 31 alloc cn10g-[05-22,45-50],cnib-[01-07]
ultra-gpu up 30-00:00:0 2 idle gpu[1-2]
ultra-fat up 30-00:00:0 2 alloc fat[2-3]
ultra-fat up 30-00:00:0 1 idle fat4
test up 1:00:00 2 idle cntest[1-2]
Interpreting the output (first five plus the last line in output, ignoring the partitions with short-, long- and ultra- prefixes for now):
- The nodes
cn10g-05tocn10g-22,cn10g-45tocn10g-50andcnib-01tocnib-07are fully allocated and currently in use - The same goes for the nodes
fat2andfat3. - The nodes
cn10g-23,cn10g-24,cn10g-51andcn10g-52are in a "mixed" state, meaning they are partly occupied by jobs, but have some free CPUs left. - Both GPU nodes
gpu1andgpu2as well as the nodefat4are idle, ready to accept jobs. - Both test nodes
cntest1andcntest2are also idle.
Here, some small jobs could be run on the mixed-state nodes, and GPU and fat node jobs also have a chance of running. Large jobs, however, that require a full node or even multiple nodes will have to wait in the queue for free resources.
Partitions and time limits
Partitions (you will have noticed in the examples above) are a group of nodes together with a set of properties and limits. Compute nodes can belong to different partitions at the same time when limits or available features differ between those partitions. Most notably, the maximum time a single job is allowed to run on Julia HPC is different, depending on the partition the job is submitted to. If a user does not provide an explicit time limit for a job, the limit is set automatically (roughly a quarter of the partitions maximum time).
Partitions also affect the job's priority value: Jobs submitted to partitions with a higher time limit will have a lower priority.
See the partitions overview for a detailed description of the available partitions and their resources and limits.
Detailed job and node description
Nodes
Run scontrol with the arguments show node and the nodename to see a detailed description of the node's configured
state and its configured and allocated resources:
$ scontrol show node cnib-01
NodeName=cnib-01 Arch=x86_64 CoresPerSocket=4
CPUAlloc=2 CPUErr=0 CPUTot=32 CPULoad=0.02
AvailableFeatures=ib
ActiveFeatures=ib
Gres=(null)
NodeAddr=cnib-01 NodeHostName=cnib-01 Version=17.11
OS=Linux 4.9.0-7-amd64 #1 SMP Debian 4.9.110-3+deb9u1 (2018-08-03)
RealMemory=384000 AllocMem=2048 FreeMem=380058 Sockets=4 Boards=1
State=MIXED ThreadsPerCore=2 TmpDisk=0 Weight=2 Owner=N/A MCS_label=N/A
Partitions=any,ib
BootTime=2018-08-09T16:31:35 SlurmdStartTime=2018-08-09T16:18:43
CfgTRES=cpu=32,mem=375G,billing=32
AllocTRES=cpu=2,mem=2G
CapWatts=n/a
CurrentWatts=0 LowestJoules=0 ConsumedJoules=0
ExtSensorsJoules=n/s ExtSensorsWatts=0 ExtSensorsTemp=n/s
As you can see from the CPUTot item (second line of output), this machine has 32 CPUs.
The RealMemory item in line 8 tells you that it has 384000 MiB (= 375 GiB) of RAM, see also CfgTRES in line 12.
Additionally, this machine has a special feature listed at AvailableFeatures (line 2): The value of ib marks this node as a machine with enabled Infiniband support.
Jobs
Run scontrol with show jobid= and the numeric id of your job to get a detailed description of the job.
Storage
We provide a net total of 500TB for the home directories, employing a BeeGFS storage system. A disk usage quota is set on a per-group basis.
Warning
No backup is provided!
Compute nodes have local storage capacity for temporary use by currently running jobs.
Disk usage and quota
You can check your disk usage with the du command, e.g.:
$ du -sch $HOME
603M /home/clusteruser
603M total
Since a group level quota is set for the storage, you can compare your usage with the group quota.
First check your primary group:
$ id
uid=123456(clusteruser) gid=31798(42-julia-hpc-rz)
Look at the gid number. In this case it is 31798.
Now you can check your group quota on the BeeGFS storage with your gid number:
$ /sbin/beegfs-ctl --getquota --gid 31798
user/group || size || chunk files
name | id || used | hard || used | hard
---------------|------||------------|------------||---------|---------
42-julia-hpc-rz| 31798|| 2.07 GiB| 500.00 GiB|| 38084|unlimited
In this example the group uses 2.07 GiB of a 500.00 GiB disk quota.
Info
BeeGFS shows gross (instead of net) usage and quota values. Since it operates in a two-node mirrored setup, it counts your disk usage twice: A 10 MB file will count as 20 MB on BeeGFS.
Therefore, in the above example the real disk usage of the group is ~1 GiB with a real group quota of 250 GiB.
Scratch space
For each job, a private folder is created.
It is available to the job at /tmp and gets deleted when the job ends.
A quota is set on this particular folder, depending the user's specification at submit time. Job will receive an error message such as "No space left on device" or "Quota exceeded" if their node-local output is larger than the quota.
The local disks of the compute nodes are about 1.7 TB in size. An exception are the FAT nodes with local disks of roughly 7 TB.