Difference between revisions of "Cray"
(→GPU performance tracking) |
|||
(5 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
− | This document describes how to configure TAU and PDT on Cray XT3/RedStorm. | + | <!-- |
+ | |||
+ | This document describes how to configure TAU and PDT on Cray XT3/RedStorm or Cray CNL. Choose the subsection that applies to you. Both cases assumes that the backend nodes are running Catamount OS. | ||
+ | |||
+ | ==Cray XT3== | ||
1. Configuring PDT | 1. Configuring PDT | ||
Line 29: | Line 33: | ||
Which builds binaries in the x86_64/bin/ directory which may be executed on the front-end. | Which builds binaries in the x86_64/bin/ directory which may be executed on the front-end. | ||
+ | |||
+ | ==Cray CNL== | ||
+ | |||
+ | ===with PGI compilers=== | ||
+ | |||
+ | |||
+ | 1. Configuring PDT | ||
+ | |||
+ | <pre> % ./configure -GNU | ||
+ | % make clean install </pre> | ||
+ | |||
+ | Installs PDT binaries in x86_64/bin directory. | ||
+ | |||
+ | 2. Installing TAU | ||
+ | |||
+ | It is important to note that executables that are created for the backend nodes do not run on the XT3 front-end. Hence, it is important to compile TAU with -pdt_c++=g++ so that tau_instrumentoris built for the front-end as it is required for compilation. To install TAU: | ||
+ | |||
+ | <pre> % ./configure -arch=craycnl -pdt=<dir> -pdt_c++=g++ -mpi | ||
+ | % make clean install </pre> | ||
+ | |||
+ | Builds xt3/lib/Makefile.tau-mpi-pdt-pgi stub Makefile. Configuring in this manner builds the TAUlibraries in xt3/lib directory. | ||
+ | |||
+ | To use SHMEM on XT3, we use: | ||
+ | |||
+ | <pre> % ./configure -arch=craycnl -pdt=<dir> -pdt_c++=g++ -shmem | ||
+ | % make clean install </pre> | ||
+ | |||
+ | To build other tools (such as pprof, tau_merge, tau2vtf) that execute on the front-end, we install TAU using: | ||
+ | |||
+ | <pre> % ./configure | ||
+ | % make clean install | ||
+ | </pre> | ||
+ | |||
+ | Which builds binaries in the x86_64/bin/ directory which may be executed on the front-end. | ||
+ | |||
+ | ===with PathScale compilers=== | ||
+ | |||
+ | 1. Configuring PDT | ||
+ | |||
+ | <pre> % ./configure -GNU | ||
+ | % make clean install </pre> | ||
+ | |||
+ | Installs PDT binaries in x86_64/bin directory. | ||
+ | |||
+ | 2. Installing TAU | ||
+ | |||
+ | It is important to note that executables that are created for the backend nodes do not run on the XT3 front-end. Hence, it is important to compile TAU with -pdt_c++=g++ so that tau_instrumentoris built for the front-end as it is required for compilation. To install TAU: | ||
+ | <pre> | ||
+ | module unload PrgEnv-pgi | ||
+ | module load pathscale/3.0 | ||
+ | module load xt-pe/2.0.33 | ||
+ | module load xt-mpt-pathscale/2.0.33 | ||
+ | module load xt-libsci/10.2.0 | ||
+ | module load PrgEnv-pathscale/2.0.33 | ||
+ | |||
+ | ./configure -fortran=pathscale -c++=CC -cc=pathcc -arch=craycnl -pdt=/spin/proj/perc/TOOLS/pdt/pdtoolkit-3.12 -pdt_c++=g++ -mpi | ||
+ | </pre> | ||
+ | --> | ||
+ | == Cray XK6/XK7 == | ||
+ | |||
+ | === GPU performance tracking === | ||
+ | |||
+ | 1. Configuring TAU: | ||
+ | module load cudatoolkit | ||
+ | ./configure -arch=craycnl -cuda="$CRAY_CUDATOOLKIT_DIR" -cudalibrary="$CRAY_CUDATOOLKIT_POST_LINK_OPTS" -bfd=download | ||
+ | |||
+ | Setup your environment: | ||
+ | |||
+ | export PATH=<path to tau2>/craycnl/bin:$PATH | ||
+ | export LD_LIBRARY_PATH=<path to tau2>/craycnl/lib:$LD_LIBRARY_PATH | ||
+ | |||
+ | 2. CUDA | ||
+ | |||
+ | Build as normally would, and modify your run command to be: | ||
+ | |||
+ | aprun -N 1 tau_exec -T serial,cupti -cupti ./matmult | ||
+ | |||
+ | 3. OpenACC | ||
+ | |||
+ | Remember to load the cray acc module: | ||
+ | |||
+ | module load craype-accel-nvidia20 | ||
+ | |||
+ | Both PGI and Cray compilers uses the CUDA driver API to interact with the GPU, so to setup TAU to collect those calls: | ||
+ | |||
+ | export TAU_CUPTI_API=driver | ||
+ | |||
+ | Compile as normally would and run with tau_exec: | ||
+ | |||
+ | aprun -N 1 tau_exec -T serial,cupti -cupti ./matmult | ||
+ | |||
+ | 4. Viewing profiles | ||
+ | |||
+ | TAU profile are written to disk as '''profile.*''' (you may have several files.) You can view TAU profiles either through '''pprof''' (text-basied) or '''paraprof''' (GUI). | ||
+ | |||
+ | 5. Tracing | ||
+ | |||
+ | Traces can be capture by setting: | ||
+ | |||
+ | export TAU_TRACE=1 | ||
+ | |||
+ | before running your application. The traces need to be post-processed as well, issue these commands: | ||
+ | |||
+ | aprun -N 1 tau_exec -T serial,cupti -cupti ./matmult | ||
+ | tau_multimerge | ||
+ | tau2slog2 tau.trc tau.edf -o matmult.slog2 | ||
+ | jumpshot matmult.slog2 | ||
+ | |||
+ | Jumpshot is a common Trace visualizer bundled with TAU. |
Latest revision as of 18:21, 25 October 2012
Cray XK6/XK7
GPU performance tracking
1. Configuring TAU:
module load cudatoolkit ./configure -arch=craycnl -cuda="$CRAY_CUDATOOLKIT_DIR" -cudalibrary="$CRAY_CUDATOOLKIT_POST_LINK_OPTS" -bfd=download
Setup your environment:
export PATH=<path to tau2>/craycnl/bin:$PATH export LD_LIBRARY_PATH=<path to tau2>/craycnl/lib:$LD_LIBRARY_PATH
2. CUDA
Build as normally would, and modify your run command to be:
aprun -N 1 tau_exec -T serial,cupti -cupti ./matmult
3. OpenACC
Remember to load the cray acc module:
module load craype-accel-nvidia20
Both PGI and Cray compilers uses the CUDA driver API to interact with the GPU, so to setup TAU to collect those calls:
export TAU_CUPTI_API=driver
Compile as normally would and run with tau_exec:
aprun -N 1 tau_exec -T serial,cupti -cupti ./matmult
4. Viewing profiles
TAU profile are written to disk as profile.* (you may have several files.) You can view TAU profiles either through pprof (text-basied) or paraprof (GUI).
5. Tracing
Traces can be capture by setting:
export TAU_TRACE=1
before running your application. The traces need to be post-processed as well, issue these commands:
aprun -N 1 tau_exec -T serial,cupti -cupti ./matmult tau_multimerge tau2slog2 tau.trc tau.edf -o matmult.slog2 jumpshot matmult.slog2
Jumpshot is a common Trace visualizer bundled with TAU.