This is the multi-page printable view of this section. Click here to print.

Return to the regular view of this page.

Tools

Tools used in LACES projects

    CPU Memory Usage Tracking tools

    heaptrack

    It provides efficient, time resolved memory usage, leaks, allocations, flamegraphs, etc. for large applications - even with release compilation. It has a nice gui which opens automatically (if the AppImage is used, otherwise install and run heaptrack_gui) when there’s display connected. heaptrack_gui is also available on ubuntu apt repository and be installed easily by doing (may need sudo):

    apt install heaptrack_gui

    Portable version can be found here in KDE Download Page. This AppImage worked on both Ubuntu 24.04LTE and Perlmutter. Find more details here: https://milianw.de/blog/heaptrack-a-heap-memory-profiler-for-linux.html

    Another advantage is that even if the application crashes, it stills saves the data upto that point.

    valgrind --tool=massif

    Well known tool for memory profiling. It takes long time for large applications since it slows down the application significantly. Official documentation can be found here: https://valgrind.org/docs/manual/ms-manual.html. It also has a GUI called massif-visualizer.

    Linaro-MAP

    Generic profiling tool. Find more details here: https://www.linaroforge.com/linaro-map/. Tried to use it for a large application, but it needs debug symbols as well as gets stuck at some point and produces no output.

    gperftools / pprof

    I didn’t use it but listing as an available option.

    GPU or General Kokkos Memory Usage Tracking tools

    Kokkos provides a set of tools to track memory usage. Find details here. Don’t forget to compile Kokkos with Kokkos_ENABLE_LIBDL=ON flag before using these tools.

    Performance Profiling tools

    HPCToolkit

    Find details and usage here: https://hpctoolkit.org/. It is available in perlmutter through:

    module load spack spack env activate gcc spack load hpctoolkit

    TAU

    TAU is also avaiable in perlmutter through the gcc spack environemt. It has higher overhead and I don’t have much experience with it.

    Linaro-Forge

    Available in perlmutter. Find details here: https://www.linaroforge.com/. Has a nice GUI. I never used it but listing as an option.

    Remote GUI Connection

    NERSC/Perlmutter Machines

    • Through ThinLinc. It also works with their sshproxy allowing to connect without password.

    SCOREC Machines

    • Though Web Interface of Blue and Orange Portals.
    • Through aperture machines. See instructions here.