2020#include < unordered_map>
2121
2222#ifdef USE_CALIPER
23+ #include < caliper/cali.h>
2324#include < adiak.hpp>
25+ #define LAGHOS_CALI_MARK_BEGIN (x ) CALI_MARK_BEGIN (x)
26+ #define LAGHOS_CALI_MARK_END (x ) CALI_MARK_END (x)
27+ #else
28+ #define LAGHOS_CALI_MARK_BEGIN (x )
29+ #define LAGHOS_CALI_MARK_END (x )
2430#endif
2531
2632#ifdef MFEM_USE_MPI
@@ -344,8 +350,10 @@ void LagrangianHydroOperator::SolveVelocity(const Vector &S,
344350 {
345351 LAGHOS_DEVICE_SYNC ;
346352 timer.sw_force .Start ();
353+ LAGHOS_CALI_MARK_BEGIN (" SolveVelocity-ForcePA" );
347354 ForcePA->Mult (one, rhs);
348355 LAGHOS_DEVICE_SYNC ;
356+ LAGHOS_CALI_MARK_END (" SolveVelocity-ForcePA" );
349357 timer.sw_force .Stop ();
350358 rhs.Neg ();
351359
@@ -376,8 +384,10 @@ void LagrangianHydroOperator::SolveVelocity(const Vector &S,
376384 VMassPA->EliminateRHS (B);
377385 LAGHOS_DEVICE_SYNC ;
378386 timer.sw_cgH1 .Start ();
387+ LAGHOS_CALI_MARK_BEGIN (" SolveVelocity-CGVMass" );
379388 CG_VMass.Mult (B, X);
380389 LAGHOS_DEVICE_SYNC ;
390+ LAGHOS_CALI_MARK_END (" SolveVelocity-CGVMass" );
381391 timer.sw_cgH1 .Stop ();
382392 timer.H1iter += CG_VMass.GetNumIterations ();
383393 if (Pconf) { Pconf->Mult (X, dvc_gf); }
@@ -391,8 +401,10 @@ void LagrangianHydroOperator::SolveVelocity(const Vector &S,
391401 {
392402 LAGHOS_DEVICE_SYNC ;
393403 timer.sw_force .Start ();
404+ LAGHOS_CALI_MARK_BEGIN (" SolveVelocity-Force" );
394405 Force.Mult (one, rhs);
395406 LAGHOS_DEVICE_SYNC ;
407+ LAGHOS_CALI_MARK_END (" SolveVelocity-Force" );
396408 timer.sw_force .Stop ();
397409 rhs.Neg ();
398410
@@ -417,8 +429,10 @@ void LagrangianHydroOperator::SolveVelocity(const Vector &S,
417429 cg.SetPrintLevel (-1 );
418430 LAGHOS_DEVICE_SYNC ;
419431 timer.sw_cgH1 .Start ();
432+ LAGHOS_CALI_MARK_BEGIN (" SolveVelocity-CG" );
420433 cg.Mult (B, X);
421434 LAGHOS_DEVICE_SYNC ;
435+ LAGHOS_CALI_MARK_END (" SolveVelocity-CG" );
422436 timer.sw_cgH1 .Stop ();
423437 timer.H1iter += cg.GetNumIterations ();
424438 Mv.RecoverFEMSolution (X, rhs, dv);
@@ -455,14 +469,18 @@ void LagrangianHydroOperator::SolveEnergy(const Vector &S, const Vector &v,
455469 {
456470 LAGHOS_DEVICE_SYNC ;
457471 timer.sw_force .Start ();
472+ LAGHOS_CALI_MARK_BEGIN (" SolveEnergy-ForcePA" );
458473 ForcePA->MultTranspose (v, e_rhs);
459474 LAGHOS_DEVICE_SYNC ;
475+ LAGHOS_CALI_MARK_END (" SolveEnergy-ForcePA" );
460476 timer.sw_force .Stop ();
461477 if (e_source) { e_rhs += *e_source; }
462478 LAGHOS_DEVICE_SYNC ;
463479 timer.sw_cgL2 .Start ();
480+ LAGHOS_CALI_MARK_BEGIN (" SolveEnergy-CGEMass" );
464481 CG_EMass.Mult (e_rhs, de);
465482 LAGHOS_DEVICE_SYNC ;
483+ LAGHOS_CALI_MARK_END (" SolveEnergy-CGEMass" );
466484 timer.sw_cgL2 .Stop ();
467485 const HYPRE_Int cg_num_iter = CG_EMass.GetNumIterations ();
468486 timer.L2iter += (cg_num_iter==0 ) ? 1 : cg_num_iter;
@@ -474,8 +492,10 @@ void LagrangianHydroOperator::SolveEnergy(const Vector &S, const Vector &v,
474492 {
475493 LAGHOS_DEVICE_SYNC ;
476494 timer.sw_force .Start ();
495+ LAGHOS_CALI_MARK_BEGIN (" SolveEnergy-Force" );
477496 Force.MultTranspose (v, e_rhs);
478497 LAGHOS_DEVICE_SYNC ;
498+ LAGHOS_CALI_MARK_END (" SolveEnergy-Force" );
479499 timer.sw_force .Stop ();
480500 if (e_source) { e_rhs += *e_source; }
481501 Vector loc_rhs (l2dofs_cnt), loc_de (l2dofs_cnt);
@@ -485,8 +505,10 @@ void LagrangianHydroOperator::SolveEnergy(const Vector &S, const Vector &v,
485505 e_rhs.GetSubVector (l2dofs, loc_rhs);
486506 LAGHOS_DEVICE_SYNC ;
487507 timer.sw_cgL2 .Start ();
508+ LAGHOS_CALI_MARK_BEGIN (" SolveEnergy-MeInv" );
488509 Me_inv (e).Mult (loc_rhs, loc_de);
489510 LAGHOS_DEVICE_SYNC ;
511+ LAGHOS_CALI_MARK_END (" SolveEnergy-MeInv" );
490512 timer.sw_cgL2 .Stop ();
491513 timer.L2iter += 1 ;
492514 de.SetSubVector (l2dofs, loc_de);
@@ -794,6 +816,7 @@ void LagrangianHydroOperator::UpdateQuadratureData(const Vector &S) const
794816 // This code is only for the 1D/FA mode
795817 LAGHOS_DEVICE_SYNC ;
796818 timer.sw_qdata .Start ();
819+ LAGHOS_CALI_MARK_BEGIN (" LagrangianHydroOperator-UpdateQuadratureData" );
797820 const int nqp = ir.GetNPoints ();
798821 ParGridFunction x, v, e;
799822 Vector* sptr = const_cast <Vector*>(&S);
@@ -956,6 +979,7 @@ void LagrangianHydroOperator::UpdateQuadratureData(const Vector &S) const
956979 delete [] cs_b;
957980 delete [] Jpr_b;
958981 LAGHOS_DEVICE_SYNC ;
982+ LAGHOS_CALI_MARK_END (" LagrangianHydroOperator-UpdateQuadratureData" );
959983 timer.sw_qdata .Stop ();
960984 timer.quad_tstep += NE ;
961985}
@@ -1331,6 +1355,7 @@ void QUpdate::UpdateQuadratureData(const Vector &S, QuadratureData &qdata)
13311355{
13321356 LAGHOS_DEVICE_SYNC ;
13331357 timer->sw_qdata .Start ();
1358+ LAGHOS_CALI_MARK_BEGIN (" QUpdate-UpdateQuadratureData" );
13341359 Vector* S_p = const_cast <Vector*>(&S);
13351360 const int H1_size = H1 .GetVSize ();
13361361 const double h1order = (double ) H1 .GetOrder (0 );
@@ -1380,6 +1405,7 @@ void QUpdate::UpdateQuadratureData(const Vector &S, QuadratureData &qdata)
13801405 qdata.Jac0inv , q_dt_est, qdata.stressJinvT );
13811406 qdata.dt_est = q_dt_est.Min ();
13821407 LAGHOS_DEVICE_SYNC ;
1408+ LAGHOS_CALI_MARK_END (" QUpdate-UpdateQuadratureData" );
13831409 timer->sw_qdata .Stop ();
13841410 timer->quad_tstep += NE ;
13851411}
@@ -1390,8 +1416,10 @@ void LagrangianHydroOperator::AssembleForceMatrix() const
13901416 Force = 0.0 ;
13911417 LAGHOS_DEVICE_SYNC ;
13921418 timer.sw_force .Start ();
1419+ LAGHOS_CALI_MARK_BEGIN (" LagrangianHydroOperator-AssembleForceMatrix" );
13931420 Force.Assemble ();
13941421 LAGHOS_DEVICE_SYNC ;
1422+ LAGHOS_CALI_MARK_END (" LagrangianHydroOperator-AssembleForceMatrix" );
13951423 timer.sw_force .Stop ();
13961424 forcemat_is_assembled = true ;
13971425}
0 commit comments