FleCSI Core API Version: 2.3.2
 
Loading...
Searching...
No Matches
context Struct Reference

The context type provides a high-level execution context interface that is implemented by a specific backend. More...

Public Member Functions

Color color () const
 Get the color of the current point task.
 
Color colors () const
 Get the number of colors.
 
unsigned & flog_task_count ()
 Return the count of executed tasks.
 
unsigned const & flog_task_count () const
 Return the count of executed tasks (const version).
 
Color process () const
 Return the current process id.
 
Color processes () const
 Return the number of processes.
 
int start (const std::function< int()> &action, bool check_args)
 Start the FleCSI runtime.
 
auto & task_names ()
 Return map containing the short and full signature of all registered tasks.
 
Color threads () const
 Return the number of execution instances with which the runtime was invoked.
 
Color threads_per_process () const
 Return the number of threads per process.
 

Static Public Member Functions

template<class Topo , typename Topo::index_space Index, typename Field >
static void add_field_info (field_id_t id)
 Register field information.
 
template<class Topo , typename Topo::index_space Index = Topo::default_space()>
static field_info_store_t const & field_info_store ()
 Return the stored field info for the given topology type and layout (const version).
 
static int task_depth ()
 Return the current task depth within the execution hierarchy.
 

Detailed Description

The context type provides a high-level execution context interface that is implemented by a specific backend.

Member Function Documentation

◆ start()

int start ( const std::function< int()> & action,
bool check_args )
nodiscard

Start the FleCSI runtime.

Parameters
actionThe top-level action FleCSI should execute.
check_argstrap unrecognized backend configuration arguments
Returns
An integer with 0 being success, and any other value being failure.

◆ process()

Color process ( ) const

Return the current process id.

◆ processes()

Color processes ( ) const

Return the number of processes.

◆ threads_per_process()

Color threads_per_process ( ) const

Return the number of threads per process.

◆ threads()

Color threads ( ) const

Return the number of execution instances with which the runtime was invoked.

In this context a thread is defined as an instance of execution, and does not imply any other properties. This interface can be used to determine the full subscription of the execution instances of the running process that invoked the FleCSI runtime.

◆ task_names()

auto & task_names ( )

Return map containing the short and full signature of all registered tasks.

◆ task_depth()

static int task_depth ( )
static

Return the current task depth within the execution hierarchy.

The top-level task has depth 0. This interface is primarily intended for FleCSI developers to use in enforcing runtime constraints.

◆ color()

Color color ( ) const

Get the color of the current point task.

◆ colors()

Color colors ( ) const

Get the number of colors.

◆ add_field_info()

template<class Topo , typename Topo::index_space Index, typename Field >
static void add_field_info ( field_id_t id)
static

Register field information.

Template Parameters
Topotopology type
Indextopology-relative index space
Fieldfield data type
Parameters
idfield ID

◆ field_info_store()

template<class Topo , typename Topo::index_space Index = Topo::default_space()>
static field_info_store_t const & field_info_store ( )
static

Return the stored field info for the given topology type and layout (const version).

Template Parameters
Topotopology type
Indextopology-relative index space

◆ flog_task_count() [1/2]

unsigned const & flog_task_count ( ) const

Return the count of executed tasks (const version).

◆ flog_task_count() [2/2]

unsigned & flog_task_count ( )

Return the count of executed tasks.