For every account on the cluster a directory on the cluster wide filesystem /scratch
is created. It is very important that you do not write your output files from jobs to /home/username
but /scratch/username
instead. This is easily accomplished by submitting your jobs directly from /scratch/username
.
/home/username
is also not writable from within jobs, so any attempts to write there will fail. ~/.cache
is pointing to a temporary filesystem, which you can use nonetheless. You can also just keep output data on /scratch
as nothing on the filesystem will ever be deleted. The main difference is, that /home
is just a single server while /scratch
is a cluster-filesystem based on BeeGFS that utilizes many servers at the same time.
When submitting a job you absolutely must specify an amount of memory to be allocated for your job.
By default, a job get's 1MB
of memory per allocated CPU. This is a ridiculously value, which we set to make sure that some thought goes into how much memory you need. If more memory is allocated than you actually need, your job might wait longer than needed for a free spot in the cluster.
If you specifiy less memory than needed, your program will automatically be killed.
Jobs that do a lot of I/O operations on a shared cluster filesystem like /scratch
can severely slow down the whole system. If your job does not use multiple nodes and is not reading and writing very large files, it might be a good idea to move input and output files to the /tmp
folder on the compute node itself.
/tmp
is a RAM based filesystem, meaning that anything you store there is actually stored in memory. So space is quite limited. Currently all jobs on a node can use at most 20% of the total system memory for space in /tmp
. If you need more space, you should consider using /dev/shm
, where you can use up to 50% of the total system memory per job.
–mem
option