Scratch storages
Scratch storage is a storage for temporary files for running job. This storage should be used only during computations and should be freed immediately after your job ends. The location of scratch directory is defined by a system variable SCRATCHDIR
.
Scratch types
We offer four types of scratch storage:
scratch_local
available on every node, located on regular hard disc
choose this type as a default if you have no reason to do otherwise
integer type, submitted as scratch_local=10gb
located in /scratch/USERNAME/job_JOBID
scratch_ssd
located on small SSD disc
ultra fast (compared to local scratch), but smaller in volume
integer type, submitted as scratch_ssd=1gb
not available on all computational nodes!
to check for availability on a particular node: go to https://metavo.metacentrum.cz/pbsmon2/props -> choose a node -> search for scratch_ssd in a gray table
recommended in jobs where the bottleneck is disc-related operations (applications that create/read a lot of files)
located in /scratch.ssd/USERNAME/job_JOBID
scratch_shared
network volume which is shared between all clusters in a given location (city)
read/write operation slower than on local scratch
useful if you need to run more than one application that need access to the same data
integer type, submitted as scratch_shared=10gb
not available on all computational nodes!
to check for availability on a particular node: go to https://metavo.metacentrum.cz/pbsmon2/props -> choose a node -> search for scratch_shared in a gray table
mounted to directory /scratch.shared/USERNAME/job_JOBID
scratch_shm
scratch directory is in RAM
fastest, but data on scratch do not survive the end/failure of the job
use when you need ultra fast scratch AND when you absolutely don't care about data from failed/killed/ended jobs
boolean type, submitted as scratch_shm=true
maximum size of scratch is defined by mem (memory) parameter
remember to choose mem large enough (to hold both data in scratch and the actual memory requirements for the job)
mounted to directory /dev/shm/scratch.shm/USERNAME/job_JOBID
No default scratch
For a batch job, you must set the size and type of scratchdir! There is no default type of scratch.
Directory SCRATCHDIR
is not writable, only it's content is. Therefore you cannot e.g. do rm -rf $SCRATCHDIR
, but you can rm -rf $SCRATCHDIR/*
.
Users should always clear the content of scratch directory after the job ends to free disc space. Otherwise, this directory will be automatically deleted after 14 days at most (earlier if there is lack of space on disks).
Examples:
Submit batch job with 100 GB scratch on local disc:
qsub -l select=1:ncpus=1:mem=4gb:scratch_local=100gb
Submit interactive job with 20 GB memory and scratch in RAM:
qsub -I -l select=1:ncpus=1:mem=20gb:scratch_shm=true
Submit batch job with 1 GB of scratch on SSD disc:
qsub -l select=1:ncpus=1:mem=4gb:scratch_ssd=1gb
System variables
SCRATCHDIR
location of scratch directory
echo $SCRATCHDIR
SCRATCH_TYPE
type of scratch directory
echo $SCRATCH_TYPE
SCRATCH_VOLUME
size of scratch directory
echo $SCRATCH_VOLUME