timemory  3.2.1
Modular C++ Toolkit for Performance Analysis and Logging. Profiling API and Tools for C, C++, CUDA, Fortran, and Python. The C++ template API is essentially a framework to creating tools: it is designed to provide a unifying interface for recording various performance measurements alongside data logging and interfaces to other tools.
tim::component::craypat_record Struct Reference

Provides scoping the CrayPAT profiler. Global initialization stops the profiler, the first call to start() starts the profiler again on the calling thread. Instance counting is enabled per-thread and each call to start increments the counter. All calls to stop() have no effect until the counter reaches zero, at which point the compiler is turned off again. More...

#include "timemory/components/craypat/components.hpp"

+ Collaboration diagram for tim::component::craypat_record:

Public Types

using this_type = craypat_record
 
using value_type = void
 
using base_type = base< this_type, void >
 
using tracker_type = policy::instance_tracker< this_type >
 

Public Member Functions

void start ()
 
void stop ()
 

Static Public Member Functions

static std::string label ()
 
static std::string description ()
 
static void global_init ()
 
static void global_finalize ()
 

Detailed Description

Provides scoping the CrayPAT profiler. Global initialization stops the profiler, the first call to start() starts the profiler again on the calling thread. Instance counting is enabled per-thread and each call to start increments the counter. All calls to stop() have no effect until the counter reaches zero, at which point the compiler is turned off again.

Definition at line 53 of file components.hpp.

Member Typedef Documentation

◆ base_type

Definition at line 59 of file components.hpp.

◆ this_type

◆ tracker_type

◆ value_type

Definition at line 58 of file components.hpp.

Member Function Documentation

◆ description()

static std::string tim::component::craypat_record::description ( )
inlinestatic

Definition at line 63 of file components.hpp.

64  {
65  return "Toggles CrayPAT recording on calling thread";
66  }

◆ global_finalize()

static void tim::component::craypat_record::global_finalize ( )
inlinestatic

Definition at line 70 of file components.hpp.

70 { backend::craypat::record(PAT_STATE_OFF); }
void record(TupleT< Tp... > &obj, Args &&... args)
Definition: functional.cpp:616

References tim::invoke::record().

◆ global_init()

static void tim::component::craypat_record::global_init ( )
inlinestatic

Definition at line 68 of file components.hpp.

68 { backend::craypat::record(PAT_STATE_OFF); }

References tim::invoke::record().

◆ label()

static std::string tim::component::craypat_record::label ( )
inlinestatic

Definition at line 62 of file components.hpp.

62 { return "craypat_record"; }

◆ start()

void tim::component::craypat_record::start ( )
inline

Definition at line 72 of file components.hpp.

73  {
75  if(tracker_type::m_thr == 0)
76  backend::craypat::record(PAT_STATE_ON);
77  }
void start(TupleT< Tp... > &obj, Args &&... args)
Definition: functional.cpp:298

References tim::invoke::record(), and tim::invoke::start().

◆ stop()

void tim::component::craypat_record::stop ( )
inline

Definition at line 79 of file components.hpp.

80  {
82  if(tracker_type::m_thr == 0)
83  backend::craypat::record(PAT_STATE_OFF);
84  }
void stop(TupleT< Tp... > &obj, Args &&... args)
Definition: functional.cpp:368

References tim::invoke::record(), and tim::invoke::stop().


The documentation for this struct was generated from the following file: