Logging in and running a job (preparatory homework)
Note
If you want to use the NX Nomachine client to get a GUI session on cshpc, you can.
While it is in principle possible to use Gnome or KDE4/Plasma desktops on cshpc, we do not recommend that. The reason is that these desktops nowadays require hardware 3D acceleration to be bearable, and the remote session cannot offer that, so using them will feel like molasses. In addition, in our experience Plasma crashes randomly at every second click if no 3D acceleration is available. We therefore recommend you use more lightweight desktop-environments like XFCE, or Trinity (KDE3). For the latter, you’ll need to click on “create a new custom session” in the client, and use the following settings:
- Run the following command:
starttde
- Run the command in a virtual desktop
Login to the Fritz cluster
If you use IPv6, you should be able to log in directly from anywhere to fritz.nhr.fau.de
.
With IPv4, this is not possible because our clusters use private IPv4
addresses. You can still log in directly to one of the Fritz frontends
using proxy jump:
$ ssh -J YOUR_USERNAME@cshpc.rrze.fau.de YOUR_USERNAME@fritz.nhr.fau.de
If you don't know what proxy jump is, you can also just log in to cshpc.rrze.fau.de and then go to fritz from there. We have a ten-minute YouTube video explaining the login options for Meggie, one of our other clusters:
If you want to use NoMachine NX, you can. See the video for details. (Note: In the video we use the "Meggie" cluster as an example. In this course we will be working on "Fritz." The same procedures apply.)
Frontends and batch jobs
Fritz uses the "SLURM" batch system. In the course we will be using interactive batch jobs. On the frontend you have several editors (vim, nano, emacs) for working on code. It is a good idea to have at least two shells open on the frontend, one for editing and one for running jobs (see below). You can also use "screen" or "tmux" to run persistent sessions. See
Start an interactive batch job:
$ salloc -p singlenode -N 1 --time=01:00:00 -C hwperf
This requests one compute node for 1 hour and
allows you to use performance counters (this is only needed later in the
course). After the job is started, you will get a shell on one of the
compute nodes. Only run benchmarks within a batch job since the
frontends will not give you a "quiet" environment.
Compiling and running code
Note that Fritz does not support compiling code on the compute nodes. You have to do that on a frontend.
Copy an example code from the teacher's home account to your $HOME:$ cp -a ~g64g0000/DIV ~
$ cd DIV
Load an Intel compiler module:
$ module load intel
Look at the README.md for how to compile and run the code. It should give you a runtime and an approximation to Pi.
Fixing the clock frequency
For most benchmarks you want to fix the clock speed of the CPUs (by
default, "Turbo Mode" is active). To do that you have to run your binary
within the batch job using the srun
command as a wrapper:
$ srun --cpu-freq=2000000-2000000:performance ./a.out
This sets the clock speed to 2 GHz, chooses the "performance" governor, and then runs your binary as usual. Note that you must specify a minimum and a maximum value, and these are in kHz (!).