So, welcome everybody to the HPC Cafe.
My name is Thomas Gruber.
I'm working at the HPC service at the RZE Erlangen and I'm the main developer of the
liquid.
So, I'm the best to introduce it to you.
What is liquid?
A liquid is the name comes from an abbreviation of like I knew what I'm doing and the idea
is to have like a big program that does everything for you but more like the Unix philosophy
to use small tools that are dedicated for one task.
So, not you don't need the whole kitchen machine but just a knife or like a whatever else.
It's developed at the RZE since 2009.
The development was started by Jan Einziger who did the introduction right now and I took
over in like 2013.
It's an open source tool, it's active development, huge community worldwide in use and for us
the goals are to offer powerful tools for our daily work and especially to get access to
the derived metrics for performance engineering tasks like checking the vectorization, getting
flops counts, memory bandwidth numbers and so on.
So, here's again the overview.
Liquid topology provides you the information about how the system looks like, where are
the threads located, how many sockets do I have, how many numadomains do I have and so
on.
And then very important controlling the CPU affinity of processes and threads can be done
with liquid pin.
For like measuring stuff like getting the derived metrics like flops and so on, we have
liquid perf counter.
Then we have liquid bench which does some micro benchmarking using assembly benchmarks.
So no interference with compilers and so on.
For controlling the system we have liquid set frequencies for CPU and uncle frequencies
and liquid features which manipulates CPU settings.
At the moment it's only prefetches, there are not that much knobs that can be used for
that.
And for benchmarking we have liquid mem sweeper which cleans up the caches and the numadomains
from like cached files and so on so that it's clear so that if you run a benchmark afterwards
there's enough free space and no further operations by the operating system needed to clean up
while you allocate stuff.
In order to use it on the RSI systems on EMI you have to add the liquid property to the
Qsub command and for SLURM there's minus CHW perf so C for constraint so add it to your
SRUN or SLLUK command to get access to the hardware counters.
There's a special tool called liquid pin which is basically in the middle of liquid pin and
liquid perf counter because it supports both stuff, both operations so you can just pin
your threads using it for MPI and hybrid applications but you can also measure stuff with liquid
MPI run.
I have some example slides later which show how to use it so stay tuned.
So here's some output of liquid topology run on an Intel cascade lake node in our test cluster.
So here you get a header printed by liquid which CPU it is, what type of CPU, which stepping
and so on.
Then you get direct information how many sockets do we have, how many cores per socket, and
whether like hyperthreading is enabled.
We see that in this threads per core so if it's one hyperthreading is disabled for threads
per core two and more you have SMT actions enabled.
Presenters
Zugänglich über
Offener Zugang
Dauer
00:22:02 Min
Aufnahmedatum
2020-07-21
Hochgeladen am
2020-07-21 10:56:22
Sprache
en-US