STAPL API Reference          
Overview   Containers   Algorithms   Views   Skeletons   Run-Time System
Modules     Classes    
Classes | Macros
Instrumentation

Runtime System and application instrumentation support. More...

+ Collaboration diagram for Instrumentation:

Classes

class  stapl::callback
 Registers the given function as a callback to be called when a primitive is called in the registering context. More...
 
class  stapl::no_comm_guard
 Registers the given context as a no communication section of code. More...
 
struct  stapl::runtime::primitive_traits
 Traits for primitives. More...
 

Macros

#define STAPL_RUNTIME_CALL_CALLBACKS(s)
 Calls the registered stapl::callback objects in the current context with the given arguments. More...
 
#define STAPL_RUNTIME_CALL_INSTRUMENT(s)   stapl::runtime::instrument::accumulate((s));
 Calls the stapl::runtime::instrument::accumulate() with the given arguments.
 
#define STAPL_RUNTIME_STATISTICS(s, n)   stapl::runtime::instrument::push_back((s),(n))
 Calls the stapl::runtime::instrument::push_back() with the given arguments.
 
#define STAPL_RUNTIME_CALL_MPE(s, traits)   stapl::runtime::mpe_profiler p ## __LINE__((s), (traits));
 Calls the stapl::runtime::mpe_profiler with the given arguments.
 
#define STAPL_RUNTIME_CALL_NO_COMM_GUARD(traits)
 Detects if a stapl::no_comm_guard is enabled and a section of code does communication. More...
 
#define STAPL_RUNTIME_CALL_TAU(s)   TAU_PROFILE((s), " ", stapl::runtime::get_tau_group());
 Calls the TAU profiler with the given arguments.
 
#define STAPL_RUNTIME_CALL_VAMPIR(s)   VT_TRACER((s));
 Calls the vampir profiler with the given arguments.
 
#define STAPL_RUNTIME_PROFILE(s, traits)
 Calls all requested instrumentation tools. More...
 

Detailed Description

Runtime System and application instrumentation support.

The RTS has hooks to support instrumentation tools such as TAU, Vampir, MPE and others so users can identify performance issues with the Adaptive Remote Method Invocation (ARMI) primitives, identify and visualize communication patterns.

Macro Definition Documentation

◆ STAPL_RUNTIME_CALL_CALLBACKS

#define STAPL_RUNTIME_CALL_CALLBACKS (   s)
Value:
{ \
stapl::runtime::context* ctx = stapl::runtime::this_context::try_get(); \
if (ctx) \
stapl::callback::call(ctx->get_id(), s); \
}
context * try_get(void) noexcept
Returns a pointer to the current context from the stack.
Definition: impl.cc:1762
static void call(runtime::context_id const &id, const char *s)
Call all registered callback functions for the given context id and passes the given string...
Definition: callback.hpp:83

Calls the registered stapl::callback objects in the current context with the given arguments.

◆ STAPL_RUNTIME_CALL_NO_COMM_GUARD

#define STAPL_RUNTIME_CALL_NO_COMM_GUARD (   traits)
Value:
{ \
stapl::runtime::warning( \
"STAPL warning: Communication while stapl::no_comm_guard active", \
BOOST_CURRENT_FUNCTION); \
}
context_id const & get_id(void)
Returns the current context id from the stack.
Definition: impl.cc:1769
Communication primitive.
Definition: primitive_traits.hpp:55
static bool enabled(key_type const &key)
Returns true if a no_comm_guard is enabled for the given context id.
Definition: no_comm_guard.hpp:77

Detects if a stapl::no_comm_guard is enabled and a section of code does communication.

◆ STAPL_RUNTIME_PROFILE

#define STAPL_RUNTIME_PROFILE (   s,
  traits 
)
Value:
STAPL_RUNTIME_CALL_CALLBACKS(s) \
STAPL_RUNTIME_CALL_NO_COMM_GUARD(traits) \
STAPL_RUNTIME_CALL_MPE(s, traits) \
STAPL_RUNTIME_CALL_VAMPIR(s) \
STAPL_RUNTIME_CALL_TAU(s) \
static_cast<void>(0)
#define STAPL_RUNTIME_CALL_INSTRUMENT(s)
Calls the stapl::runtime::instrument::accumulate() with the given arguments.
Definition: instrument.hpp:91

Calls all requested instrumentation tools.