/cbtf-argonavis-gui

Baseline for next generation Open|SpeedShop Graphical User Interface (GUI). The primary focus of this GUI will be the processing and display of CUDA collector performance data. However, there will be refactoring phases to adopt the GUI to support the processing and display of any collector performance data.

Primary LanguageC++GNU General Public License v3.0GPL-3.0

cbtf-argonavis-gui

Baseline for next generation Open|SpeedShop Graphical User Interface (GUI).

The Open|SpeedShop GUI now has expanded capabilities beyond CUDA experiment analysis. The Open|SpeedShop GUI now has support for other sampling and tracing collectors.

Collectors with good support so far are:

  • hwc
  • hwctime
  • hwcsamp
  • pcsamp
  • usertime
  • mpit
  • omptp
  • mem

In addition there is basic support for:

  • mpi, mpip
  • io, iop, iot
  • pthreads

Open|SpeedShop GUI User Guide

The Open|SpeedShop GUI is currently in draft form and is available here:

Open|SpeedShop GUI User Guide

Building the developmental Open|SpeedShop GUI

The developmental Open|SpeedShop GUI depends on various libraries provided by other Open|SpeedShop GitHub repositories. Also, for calltree view support (which is required), Graphviz development header files and libraries must be available on the target machine.

Thus, the following environment variables need to be defined before building the software:

export CBTF_ROOT=<the location specified by "--cbtf-install-prefix" for build of git@github.com:OpenSpeedShop/cbtf.git repostory>
export OSS_CBTF_ROOT=<the location specified by "--openss-prefix" for build of git@github.com:OpenSpeedShop/openspeedshop.git repostory>
export KRELL_ROOT=<the location specified by "--krell-root-prefix" for build of git@github.com:OpenSpeedShop/openspeedshop.git repostory>
export BOOST_ROOT=<the location of Boost development header files and libraries>
export GRAPHVIZ_ROOT=<the location of GraphViz development header files and libraries>

If the QtGraph library was not previously built and installed for the particular Qt version for building the developmental Open|SpeedShop GUI, then refer to the QtGraph repository located here:

https://github.com/OpenSpeedShop/QtGraph

The QtGraph source-code can be obtained as follows:

git clone git@github.com:OpenSpeedShop/QtGraph.git

The following information regarding GraphViz should already have been done in order to build the QtGraph library.

NOTE: If GraphViz needs to be built from source, the latest stable snapshot tarball can be found here:

http://www.graphviz.org/pub/graphviz/stable/SOURCES/graphviz-2.40.1.tar.gz

For NASA HECC machines, the Graphviz development environment can be found in one of the 'pkgsrc' packages. For example:

module load pkgsrc/2016Q2

Thus, the GRAPHVIZ_ROOT environment variable would be the following:

export GRAPHVIZ_ROOT=/nasa/pkgsrc/2016Q2

For Ubuntu 14.04 or 16.04 LTS systems, the Graphviz develop environment can be installed via:

sudo apt-get install libgraphviz-dev

Once the software dependencies have been provided, the following commands can be executed:

qmake && make

Screenshots

  1. CUDA Event Timeline (comparison with NVIDIA Visual Performance Profiler)

Alt text

Alt text

  1. CUDA Event Details View

Alt text

Alt text

Alt text

  1. Metric Views Cross-Referenced To Source-Code

Alt text

Alt text

  1. Calltree View

Alt text

Alt text

  1. MPI Trace Timeline
Alt text Alt text
Alt text Alt text
Alt text Alt text

Miscellaneous Additional Screenshots

  1. Open|SpeedShop Experiment of LAMMPS Simulation with KOKKOS package for GPUs
Alt text Alt text
Alt text Alt text
Alt text Alt text
Alt text Alt text