This page documents answers to questions that we’ve been asked or that we’re surprised we haven’t been asked yet. These questions could be about working in Unity’s environment, a difference between Unity and OSC (or other HPC environments), or unexpected behavior of Unity (without judgement of why this is unexpected or who finds it unexpected).
Unlike OSC, Unity does not automatically scale the amount of memory for a job based on the number of cores requested. Instead, if you do not explicitly request a specific amount of memory, you get 3 GB. If you’re requesting more than one core, 3 GB of memory is probably not what you want. Make your request specific in your PBS script file:
#PBS -l nodes=1:ppn=4 #PBS -l mem=16GB
or in one line (note use of colon and comma):
#PBS -l nodes=1:ppn=4,mem=16GB
Using a GPU
In order to use a GPU, you need not only specify a node that has a GPU and that you want to use the GPU but also that you want to use a CPU core.
For an interactive session, that looks like
qsub -I -l nodes=1:ppn=1:gpus=1
or in batch mode, include a line like
#PBS -l nodes=1:ppn=1:gpus=1
in your PBS script file.
Using R in Unity
R is installed locally on some (but not all) of the compute nodes. This can lead to some confusion–you don’t know if R is there or what version it might be. A more robust solution when using R (whether in batch mode or interactive mode) is to first load the Intel module and then load R.
module load intel module load R
You can also specify a particular version of R if you don’t want the default (after loading the intel module, run
module avail to see what versions of R are available.