Code performance

Optimising and profiling HPC codes is key to performance, and getting the most science per kWhr.

COSMA includes many tools to help with this, and regular training activities related to these.

The SHAREing project also offers a code assessment service allowing users to submit their codes for assessment, so that potential easy performance gains can be identified.

Please fill out the form and submit your code!

The following tools are available on COSMA for profiling/benchmarking/etc.

Here is a summarized table for performance tools:

Tutorial

Description

Intel Advisor

Analyses vectorisation, threading design.

Intel VTune Profiler

Hotspot analysis, memory access patterns, threading efficiency and I/O.

AMD uProf

AMD’s profiling suite.

LIKWID

Command-line tools (likwid-perfctr, likwid-topology, likwid-pin, etc.) for reading hardware performance counters and controlling thread/process affinity.

gperftools

Google’s lightweight performance analysis tool.

OProfile

Sampling profiler for Linux that can profile code.

Linaro Forge (Allinea)

The DDT parallel debugger and MAP profiler for MPI/OpenMP/CUDA codes.

Intel Inspector

Dynamic analysis tool that detects memory errors and threading errors.

Valgrind

Memcheck tool finds memory errors while Cachegrind/Callgrind profile cache and branch behaviour.

MUST

Runtime correctness checker for MPI applications, catching deadlocks, datatype mismatches, resource leaks.

Score-P

Generates the profiles and OTF2 traces used by tools like Vampir and Scalasca.

Vampir

Interactive trace-visualisation tool for exploring event traces at any level of detail.

Darshan

I/O characterisation tool that captures POSIX, MPI-IO and HDF5 I/O behaviours.

Advisor

The Intel Advisor tool analyses vectorization.

Allinea

The Linaro (was Allinea, was ARM) FORGE and MAP tools.

Darshan

gperftools

Inspector

The Intel Inspector tool.

Likwid

Must

Oprofile

Scorep

Uprof

Valgrind

Vampir

Vtune

The Intel Vtune tool