Serac  0.1
Serac is an implicit thermal strucural mechanics simulation code.
Namespaces | Macros | Functions
profiling.hpp File Reference

Various helper functions and macros for profiling using Caliper. More...

#include <string>
#include <sstream>
#include "serac/serac_config.hpp"
#include "mpi.h"
Include dependency graph for profiling.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

 serac
 Accelerator functionality.
 
 serac::profiling
 profiling namespace
 
 serac::profiling::detail
 detail namespace
 

Macros

#define SERAC_SET_METADATA(name, data)
 
#define SERAC_MARK_FUNCTION
 
#define SERAC_MARK_LOOP_BEGIN(id, name)
 
#define SERAC_MARK_LOOP_ITER(id, i)
 
#define SERAC_MARK_LOOP_END(id)
 
#define SERAC_MARK_BEGIN(name)
 
#define SERAC_MARK_END(name)
 
#define SERAC_PROFILE_SCOPE(name)
 
#define SERAC_PROFILE_EXPR(name, expr)   expr
 
#define SERAC_PROFILE_EXPR_LOOP(name, expr, ntest)   expr
 

Functions

void serac::profiling::initialize ([[maybe_unused]] MPI_Comm comm=MPI_COMM_WORLD,[[maybe_unused]] std::string options="")
 Initializes performance monitoring using the Caliper and Adiak libraries. More...
 
void serac::profiling::finalize ()
 Concludes performance monitoring and writes collected data to a file.
 
void serac::profiling::detail::startCaliperRegion (const char *name)
 Caliper method for marking the start of a profiling region. More...
 
void serac::profiling::detail::endCaliperRegion (const char *name)
 Caliper methods for marking the end of a region. More...
 
template<typename... T>
std::string serac::profiling::concat (T... args)
 Produces a string by applying << to all arguments.
 

Detailed Description

Various helper functions and macros for profiling using Caliper.

Definition in file profiling.hpp.

Macro Definition Documentation

◆ SERAC_MARK_BEGIN

#define SERAC_MARK_BEGIN (   name)

Marks the start of a region Caliper profiling

Definition at line 145 of file profiling.hpp.

◆ SERAC_MARK_END

#define SERAC_MARK_END (   name)

Marks the end of a region Caliper profiling

Definition at line 146 of file profiling.hpp.

◆ SERAC_MARK_FUNCTION

#define SERAC_MARK_FUNCTION

Marks a function for Caliper profiling

Definition at line 141 of file profiling.hpp.

◆ SERAC_MARK_LOOP_BEGIN

#define SERAC_MARK_LOOP_BEGIN (   id,
  name 
)

Marks the beginning of a loop block for Caliper profiling

Definition at line 142 of file profiling.hpp.

◆ SERAC_MARK_LOOP_END

#define SERAC_MARK_LOOP_END (   id)

Marks the end of a loop block for Caliper profiling

Definition at line 144 of file profiling.hpp.

◆ SERAC_MARK_LOOP_ITER

#define SERAC_MARK_LOOP_ITER (   id,
 
)

Marks the beginning of a loop iteration for Caliper profiling

Definition at line 143 of file profiling.hpp.

◆ SERAC_PROFILE_EXPR

#define SERAC_PROFILE_EXPR (   name,
  expr 
)    expr

Profiles a single expression using a cali::ScopeAnnotation internally. Returns evaluation.

Definition at line 148 of file profiling.hpp.

◆ SERAC_PROFILE_EXPR_LOOP

#define SERAC_PROFILE_EXPR_LOOP (   name,
  expr,
  ntest 
)    expr

Profiles an expression several times. Returns the last evaluation

Definition at line 149 of file profiling.hpp.

◆ SERAC_PROFILE_SCOPE

#define SERAC_PROFILE_SCOPE (   name)

Uses cali::ScopeAnnotation to profile a particular scope

Definition at line 147 of file profiling.hpp.

◆ SERAC_SET_METADATA

#define SERAC_SET_METADATA (   name,
  data 
)

Sets metadata in adiak/caliper. Calls adiak::value

Definition at line 84 of file profiling.hpp.