In this talk we present an overview of gprofng, the next generation profiling tool for GNU/Linux. It has been part of the GNU binutils tools suite since version 2.39. This profiler has its roots in the Performance Analyzer from the Oracle Developer Studio product. Gprofng is a standalone tool however and specifically targets GNU/Linux. Gprofng is comprised of several tools to collect and view the performance data. It supports the profiling of programs written in C, C++, Java, or Scala running on systems using processors from Intel, AMD, Arm, or compatible vendors. The extent of the support is processor dependent, but the basic views are always available. The support for Fortran beyond F77 is currently limited and under evaluation. Any executable in the ELF (Executable and Linkable Format) object format can be used for profiling with gprofng. If debug information is available, gprofng can provide more details, but this is not a requirement. Gprofng offers full and transparent support for shared libraries and multithreading using Posix Threads, OpenMP, or Java Threads. This tool can also be used in case the source code of the target executable is not available. Gprofng also works with unmodified executables. There is no need to recompile, or instrument the code. By profiling the production executable it is ensured that the profile reflects the actual run time behaviour and conditions of a production run. After the data has been collected, the performance information can be viewed at the function, source, and disassembly level. Individual thread views are supported as well. One of the very powerful features of gprofng is the ability to compare two or more profiles. This allows for an easy way to spot regressions, or find scalability bottlenecks for example. In addition to text based views, there is also a tool that generates an html based structure, allowing the results to be viewed in a web browser. In the talk, we start with a description of the architecture of the gprofng tools suite. This is followed by an overview of the various tools that are available, plus the main features. A brief comparison with gprof will be made, but the bulk of the talk consists of examples to show the functionality and features. This includes the html functionality and also a sneak preview of the GUI that is under development. We conclude with some plans for future developments.
Тэги:
#HPC #supercomputing #PPoPP #BID23 #benchmarking #workshop