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 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

If you don't know what proxy jump is, you can also just log in to 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

for a short intro to tmux.

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 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 (!).

Last modified: Tuesday, 10 January 2023, 4:15 PM