LLNL/Caliper

Error while enabling TAU

Closed this issue · 1 comments

Hello,

I was trying to enable TAU support but getting following error:

cd /tmp/kumbhar/spack-stage/spack-stage-2V5hVI/Caliper/spack-build/src/common && /gpfs/bbp.cscs.ch/project/proj7/kumbhar/spack/lib/spack/env/intel/icpc  -Dcaliper_common_EXPORTS -I/tmp/kumbhar/spack-stage/spack-stage-2V5hVI/Caliper/spack-build/include -I/gpfs/bbp.cscs.ch/project/proj7/kumbhar/spack/var/spack/stage/caliper-master-iuak4wkzhfp5ohn3ttyoa43gqgfrqcvj/Caliper/include -I/tmp/kumbhar/spack-stage/spack-stage-2V5hVI/Caliper/spack-build -I/gpfs/bbp.cscs.ch/project/proj7/kumbhar/spack/var/spack/stage/caliper-master-iuak4wkzhfp5ohn3ttyoa43gqgfrqcvj/Caliper/src  -std=c++11 -O2 -g -DNDEBUG -fPIC   -o CMakeFiles/caliper-common.dir/SnapshotBuffer.cpp.o -c /gpfs/bbp.cscs.ch/project/proj7/kumbhar/spack/var/spack/stage/caliper-master-iuak4wkzhfp5ohn3ttyoa43gqgfrqcvj/Caliper/src/common/SnapshotBuffer.cpp
/gpfs/bbp.cscs.ch/project/proj7/kumbhar/spack/var/spack/stage/caliper-master-iuak4wkzhfp5ohn3ttyoa43gqgfrqcvj/Caliper/src/services/tau/tau.cpp(95): error: expected a ")"
              Tau_stop((const char*)(value.data());
                                                  ^

/gpfs/bbp.cscs.ch/project/proj7/kumbhar/spack/var/spack/stage/caliper-master-iuak4wkzhfp5ohn3ttyoa43gqgfrqcvj/Caliper/include/caliper/AnnotationBinding.h(204): error #140: too many arguments in function call
                  binding->finalize(c,chn);
                                      ^
          detected during instantiation of "void cali::AnnotationBinding::make_binding<BindingT>(cali::Caliper *, cali::Channel *) [with BindingT=<unnamed>::TAUBinding]" at line 105 of "/gpfs/bbp.cscs.ch/project/proj7/kumbhar/spack/var/spack/stage/caliper-master-iuak4wkzhfp5ohn3ttyoa43gqgfrqcvj/Caliper/src/services/tau/tau.cpp"

compilation aborted for /gpfs/bbp.cscs.ch/project/proj7/kumbhar/spack/var/spack/stage/caliper-master-iuak4wkzhfp5ohn3ttyoa43gqgfrqcvj/Caliper/src/services/tau/tau.cpp (code 2)
make[2]: *** [src/services/tau/CMakeFiles/caliper-tau.dir/tau.cpp.o] Error 2
make[2]: Leaving directory `/tmp/kumbhar/spack-stage/spack-stage-2V5hVI/Caliper/spack-build'
make[1]: *** [src/services/tau/CMakeFiles/caliper-tau.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....

I have used caliper instrumentation in the application and I get summary like below:

== CALIPER: (0): Flushing Caliper data
== CALIPER: (0): Aggregate: flushed 58 snapshots.
Path                         Min time/rank  Max time/rank  Avg time/rank  Time % (total)
main                         1734832.000000 1854442.000000 1800110.055556      85.460410
  MPI_Finalized                    1.000000       2.000000       1.472222       0.000070
  MPI_Initialized                  1.000000       9.000000       2.972222       0.000141
  MPI_Finalize                    38.000000   18670.000000    6490.166667       0.308121
  simulation                    1955.000000    3952.000000    2304.138889       0.109389
    spike-exchange                 1.000000       4.000000       2.194444       0.000104
      communication                1.000000       4.000000       2.166667       0.000103
        MPI_Allgather              6.000000      10.000000       7.972222       0.000378
      imbalance                    2.000000       5.000000       3.222222       0.000153
        MPI_Barrier                4.000000       7.000000       6.361111       0.000302
    timestep                   16869.000000   31784.000000   18752.777778       0.890290
      state-update             10661.000000   19779.000000   11818.472222       0.561083
        state-hh                6243.000000   11275.000000    6926.583333       0.328840
        state-ExpSyn            3481.000000    6472.000000    3896.888889       0.185005
        state-pas               2673.000000    5033.000000    2998.777778       0.142367
      update                    3548.000000    6855.000000    4053.083333       0.192421
      second_order_cur          2620.000000    4989.000000    2947.277778       0.139922
      matrix-solver             6605.000000   13429.000000    8186.250000       0.388643
      setup_tree_matrix        28000.000000   52004.000000   31500.194444       1.495475
        cur-hh                  5729.000000   10515.000000    6361.777778       0.302026
        cur-ExpSyn              5645.000000   10426.000000    6270.027778       0.297670
        cur-k_ion               2610.000000    4897.000000    2914.444444       0.138364
        cur-na_ion              2720.000000    5105.000000    3088.611111       0.146632
        cur-pas                 7176.000000   13420.000000    8167.000000       0.387729
      deliver_events            6171.000000   11643.000000    6917.055556       0.328388
        spike-exchange           149.000000     322.000000     178.527778       0.008476
          communication          144.000000     275.000000     173.444444       0.008234
            MPI_Allgatherv      1727.000000    1914.000000    1842.527778       0.087474
            MPI_Allgather        633.000000     927.000000     823.777778       0.039109
          imbalance              113.000000     233.000000     132.555556       0.006293
            MPI_Barrier          446.000000     643.000000     582.333333       0.027646
        MPI_Barrier             1362.000000   98208.000000   85062.916667       4.038371
    MPI_Barrier                   13.000000   22021.000000   13972.194444       0.663331
  MPI_Gatherv                      5.000000      14.000000       6.722222       0.000319

All good. I was wondering if I could be able to export this information to TAU profilers so that I don't have to use different instrumentation mechanism. Is this intended use of TAU support in Caliper?

Hi Pramod,

Thanks for the bug report. I'll put out an update that should fix the compilation shortly.

Yes, the tau service "exports" Caliper annotations as TAU regions so you don't need additional TAU instrumentation.