matmul - f90 ( google perftools )

Issue #42 new
jg piccinali repo owner created an issue

Compile

  • module swap PrgEnv-cray PrgEnv-gnu
  • module load cray-hdf5-parallel/1.8.14
  • cd googleperf/2.1/gnu_482/CSCS/matmul.2013
  • make \
    • LIB="-dynamic -fopenmp \
    • -L/apps/daint/5.2.UP02/sandbox/jgp/googleperf/libunwind1.1/gnu_482/lib/ -lunwind\
    • -L/apps/daint/5.2.UP02/sandbox/jgp/googleperf/2.1/gnu_482/lib -lprofiler"
ftn -g   -fopenmp -c moda.F90 -o GNU_moda.o
ftn -g   -fopenmp -c modb.F90 -o GNU_modb.o
ftn -g   -fopenmp -c modc.F90 -o GNU_modc.o
ftn -g   -fopenmp -c main.F90 -o GNU_main.o
ftn -g   -fopenmp GNU_*.o \
-dynamic -fopenmp \
-L/apps/daint/5.2.UP02/sandbox/jgp/googleperf/libunwind1.1/gnu_482/lib/ \
-L/apps/daint/5.2.UP02/sandbox/jgp/googleperf/2.1/gnu_482/lib \
-lunwind \
-lprofiler \
-o GNU.SANTIS

Run

  • export CPUPROFILE=eff.gperf
  • export U=/apps/daint/5.2.UP02/sandbox/jgp/googleperf/libunwind1.1/gnu_482
  • export GP=/apps/daint/5.2.UP02/sandbox/jgp/googleperf/2.1/gnu_482
  • export LD_LIBRARY_PATH=$U/lib:$GP/lib:$LD_LIBRARY_PATH
  • aprun -n1 ./GNU.SANTIS
           1   25.1565647    
           2   16.4140587    
           3   12.2576933    
           4   9.89585876    
           5   8.37150955    
           6   7.29913330    
           7   6.50037289    
           8   5.87929344    
           9   5.38048935    
          10   4.97076988    
 Writing filename = HDF5_0001
 Writing filename = HDF5_0002
PROFILE: interrupts/evictions/bytes = 2111/1/11576

Analyze

  • export PATH=/apps/daint/5.2.UP02/sandbox/jgp/googleperf/2.1/gnu_482/bin:$PATH
  • pprof GNU.SANTIS eff.gperf
Using local file GNU.SANTIS.
Using local file eff.gperf.
Removing _L_unlock_17 from all stack traces.
Welcome to pprof!  For help, type 'help'.
(pprof) top 10
Total: 2111 samples
    1451  68.7%  68.7%     1451  68.7% __compute_MOD_advance._omp_fn.0
     454  21.5%  90.2%      454  21.5% __compute_MOD_compute_diff._omp_fn.1
      99   4.7%  94.9%       99   4.7% MAIN__._omp_fn.0
      41   1.9%  96.9%       41   1.9% __init_MOD_init_fields._omp_fn.3
      29   1.4%  98.2%       29   1.4% __write_nocancel
      15   0.7%  99.0%       62   2.9% __write_hdf5_MOD_write_with_hdf5_mpiio
       6   0.3%  99.2%        6   0.3% _cray_mpi_memcpy_snb
       4   0.2%  99.4%        4   0.2% __munmap
       2   0.1%  99.5%        2   0.1% _init
       1   0.0%  99.6%       15   0.7% ADIOI_CRAY_W_Exchange_data
  • pprof --gv GNU.SANTIS eff.gperf eff.png

Comments (4)

  1. jg piccinali reporter

    DAINT

    Setup

    • module use /apps/daint/UES/5.2.UP04/easybuild/modules/all
    • module load gperftools/2.4-CrayGNU-2015.11-XC

    Compile

    -dynamic -lunwind -lprofiler

    Run

    • export CPUPROFILE=gperf.rpt
    • aprun ...

    Analyze

    • pprof --text ./myexe $CPUPROFILE
    • pprof -h
    pprof --text ./GNU.exe $CPUPROFILE |snk 5 -r
    Using local file ./GNU.exe.
    Using local file gperf.rpt.
    Total: 79 samples
           0   0.0% 100.0%       79 100.0% main
           0   0.0% 100.0%       79 100.0% _start
           0   0.0% 100.0%       79 100.0% MAIN__
           0   0.0% 100.0%       68  86.1% __jacobimod_MOD_jacobi
          59  74.7%  74.7%       59  74.7% __jacobimod_MOD_jacobi._omp_fn.1
           9  11.4%  86.1%        9  11.4% __jacobimod_MOD_exchangejacobimpidata._omp_fn.0
    
  2. jg piccinali reporter
    • gperftools.git/doc/cpuprofile.html
           14   2.1%  17.2%       58   8.7% std::_Rb_tree::find
    

    Here is how to interpret the columns:

    Number of profiling samples in this function
    Percentage of profiling samples in this function
    Percentage of profiling samples in the functions printed so far
    Number of profiling samples in this function and its callees
    Percentage of profiling samples in this function and its callees
    Function name
    
  3. Log in to comment