#2512: Enable detection of `attribute(pure)`
Reporter:Erik Schnetter
Status:new
Milestone:
Version:development version
Type:proposal
Priority:minor
Component:Cactus

Comment (by Roland Haas):

Linux perf timing for a 1 thread qc0-mclachlan.par test run (until it aborts due to multiple components on the single MPI rank).

Most time is spent in:

# Overhead  Command     Shared Object                Symbol                                             # 
14.17%  cactus_sim  cactus_sim                   [.] ML_BSSN::ML_BSSN_EvolutionInteriorSplitBy3_Body    11.16%  cactus_sim  cactus_sim                   [.] ML_BSSN::ML_BSSN_EvolutionInteriorSplitBy2_Body    10.29%  cactus_sim  cactus_sim                   [.] CarpetLib::prolongate_3d_rf2<double, 5>             6.58%  cactus_sim  cactus_sim                   [.] ML_BSSN::ML_BSSN_EvolutionInteriorSplitBy1_Body     4.64%  cactus_sim  cactus_sim                   [.] apply_dissipation_._omp_fn.2                        4.38%  cactus_sim  cactus_sim                   [.] ML_BSSN::ML_BSSN_ADMBaseInterior_Body               4.19%  cactus_sim  libm-2.31.so                 [.] __ieee754_pow_sse2                             

and CCTKi_VarDataPtrI is 0.01%. So this could be due to McLachlan being C and Lean being Fortran (hence no Fortran wrappers). The Fortran wrappers are terrible in that they contain calls to CCTKi_GroupLengthAsPointer for all vectors of grid functions (which takes a group name ie a string as an argument).

--
Ticket URL: https://bitbucket.org/einsteintoolkit/tickets/issues/2512/enable-detection-of-attribute-pure