Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

TAU profiling in ICE

Revision as of 13:40, 16 October 2015 by Agarwalpk.ornl.gov (Talk | contribs) (Created page with "TAU profiling in ICE ==================== Steps in brief: 1. Installation of TAU on host system (platform specific) 2. Code recompilation with TAU warappers, for auto-instrum...")

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

TAU profiling in ICE

========

Steps in brief: 1. Installation of TAU on host system (platform specific) 2. Code recompilation with TAU warappers, for auto-instrumentation 3. Run TAU-compiled code binaries to collect profiles 4. Anaylsis and visualization of the profile results

Section 1: Installation of TAU on host system

=================================

TAU binaries and wrappers are required on specific hosts where the code to be profiled is going to be run. This step is host (or atleast architecture dependent). TAU can be compiled in user space, however, it is best if it is installed by the system adminstrator.

Input for this step: TAU source code from TAU web-site Out from this step: tau_exec and other wrappers for compilers

Step 2: Code recompilation with TAU wrappers

=================================

The code to be profiled needs to be recompiled and instead of using the standard compilers (e.g. gcc, g++, mpicc etc.) equivalent TAU wrappers (made available from Step 1) are used. These are typically of the type tau_CC.sh etc.

Code developers and experienced code users should be able to perform this step independently. However, some help will be required for most end users from the system administrator. This involves specifying the path to TAU libraries and machine file, and setting some environment variables.

Compilation with TAU wrappers will auto-instrument the code and compile the binaries requires generation of the profiles at run time.

Input for this step: TAU installation (Step 1), source code for the application. Output from this step: Instrumented binary for the application.

Step 3: Run TAU-compiled code binaries to collect profiles

==============================================

This step can be performed indpendently by the end user. The only requirement is the binaries from last step. The tests (either standard for application or special ones) can be used on the host architecture for collection of the profiling data.

The profiling data can be collected for a variety of probes by specifying the correct binary and flag at test run-time.

       -io           Track I/O
       -memory       Track memory allocation/deallocation
       -memory_debug Enable memory debugger
       -cuda         Track GPU events via CUDA
       -cupti        Track GPU events via CUPTI (Also see env. variable TAU_CUPTI_API)
       -opencl       Track GPU events via OpenCL
       -openacc      Track GPU events via OpenACC (currently PGI only)
       -ompt         Track OpenMP events via OMPT interface
       -armci        Track ARMCI events via PARMCI
       -ebs          Enable event-based sampling
       -ebs_period=<count> Sampling period (default 1000)
       -ebs_source=<counter> Counter (default itimer)
       -um          Enable Unified Memory events via CUPTI
       -T <CUPTI,DISABLE,PROFILE,SERIAL> : Specify TAU tags
       -loadlib=<file.so>   : Specify additional load library
       -XrunTAUsh-<options> : Specify TAU library directly
       -gdb          Run program in the gdb debugger

Step 4. Anaylsis and visualization of the profile results

=============================================

The results from the previous step can be collected in profiles (such as profile.0.0.0) and the results can be analyzed the included paraprof and other tools.

ICE specific notes:

=======

Paraprof and other visualization tools will be included with the ability for user to specify TAU installation directory and host architecture. Instead the TAU instrumented binaries can also be made available to TAU. The tests can be either run through ICE or results can be directly made available to ICE at a location.

ICE will allow the end-user and developers to visually interpret the results.

Back to the top