Realm
A distributed, event-based tasking library
Loading...
Searching...
No Matches
Realm::Processor Class Reference

#include <processor.h>

Inheritance diagram for Realm::Processor:
Collaboration diagram for Realm::Processor:

Public Types

enum  Kind
 
enum  { TASK_ID_PROCESSOR_NOP = REALM_TASK_ID_PROCESSOR_NOP , TASK_ID_PROCESSOR_INIT = REALM_TASK_ID_PROCESSOR_INIT , TASK_ID_PROCESSOR_SHUTDOWN = REALM_TASK_ID_PROCESSOR_SHUTDOWN , TASK_ID_FIRST_AVAILABLE = REALM_TASK_ID_FIRST_AVAILABLE }
 
typedef ::realm_id_t id_t
 
typedef ::realm_task_func_id_t TaskFuncID
 
typedef void(* TaskFuncPtr) (const void *args, size_t arglen, const void *user_data, size_t user_data_len, Processor proc)
 

Public Member Functions

 Processor ()=default
 
constexpr Processor (id_t id)
 
constexpr operator id_t () const
 
bool operator< (const Processor &rhs) const
 
bool operator== (const Processor &rhs) const
 
bool operator!= (const Processor &rhs) const
 
bool exists (void) const
 
Kind kind (void) const
 
AddressSpace address_space (void) const
 
 REALM_ATTR_DEPRECATED ("use ProcessorGroup::create_group instead", static Processor create_group(const span< const Processor > &members))
 
void get_group_members (Processor *member_list, size_t &num_members) const
 
void get_group_members (std::vector< Processor > &member_list) const
 
int get_num_cores (void) const
 
Event spawn (TaskFuncID func_id, const void *args, size_t arglen, Event wait_on=Event::NO_EVENT, int priority=0) const
 
Event spawn (TaskFuncID func_id, const void *args, size_t arglen, const ProfilingRequestSet &requests, Event wait_on=Event::NO_EVENT, int priority=0) const
 
Event register_task (TaskFuncID func_id, const CodeDescriptor &codedesc, const ProfilingRequestSet &prs, const void *user_data=0, size_t user_data_len=0) const
 
void report_processor_fault (int reason, const void *reason_data, size_t reason_size) const
 

Static Public Member Functions

static Processor get_executing_processor (void)
 
static void set_current_task_priority (int new_priority)
 
static Event get_current_finish_event (void)
 
static realm_status_t add_finish_event_precondition (Event precondition)
 
static void enable_scheduler_lock (void)
 
static void disable_scheduler_lock (void)
 
static Event register_task_by_kind (Kind target_kind, bool global, TaskFuncID func_id, const CodeDescriptor &codedesc, const ProfilingRequestSet &prs, const void *user_data=0, size_t user_data_len=0)
 
static void report_execution_fault (int reason, const void *reason_data, size_t reason_size)
 
static const char * get_kind_name (Kind kind)
 

Public Attributes

id_t id {REALM_NO_PROC}
 

Static Public Attributes

static const Processor NO_PROC
 

Member Typedef Documentation

◆ id_t

◆ TaskFuncID

◆ TaskFuncPtr

typedef void(* Realm::Processor::TaskFuncPtr) (const void *args, size_t arglen, const void *user_data, size_t user_data_len, Processor proc)

Member Enumeration Documentation

◆ anonymous enum

anonymous enum
Enumerator
TASK_ID_PROCESSOR_NOP 
TASK_ID_PROCESSOR_INIT 
TASK_ID_PROCESSOR_SHUTDOWN 
TASK_ID_FIRST_AVAILABLE 

◆ Kind

Constructor & Destructor Documentation

◆ Processor() [1/2]

Realm::Processor::Processor ( )
default

◆ Processor() [2/2]

constexpr Realm::Processor::Processor ( id_t  id)
inlineexplicitconstexpr

Member Function Documentation

◆ add_finish_event_precondition()

static realm_status_t Realm::Processor::add_finish_event_precondition ( Event  precondition)
static

◆ address_space()

AddressSpace Realm::Processor::address_space ( void  ) const

◆ disable_scheduler_lock()

static void Realm::Processor::disable_scheduler_lock ( void  )
static

◆ enable_scheduler_lock()

static void Realm::Processor::enable_scheduler_lock ( void  )
static

◆ exists()

bool Realm::Processor::exists ( void  ) const
inline

◆ get_current_finish_event()

static Event Realm::Processor::get_current_finish_event ( void  )
static

◆ get_executing_processor()

static Processor Realm::Processor::get_executing_processor ( void  )
static

◆ get_group_members() [1/2]

void Realm::Processor::get_group_members ( Processor member_list,
size_t &  num_members 
) const

◆ get_group_members() [2/2]

void Realm::Processor::get_group_members ( std::vector< Processor > &  member_list) const

◆ get_kind_name()

static const char * Realm::Processor::get_kind_name ( Kind  kind)
static

◆ get_num_cores()

int Realm::Processor::get_num_cores ( void  ) const

◆ kind()

Kind Realm::Processor::kind ( void  ) const

◆ operator id_t()

constexpr Realm::Processor::operator id_t ( ) const
inlineconstexpr

◆ operator!=()

bool Realm::Processor::operator!= ( const Processor rhs) const
inline

◆ operator<()

bool Realm::Processor::operator< ( const Processor rhs) const
inline

◆ operator==()

bool Realm::Processor::operator== ( const Processor rhs) const
inline

◆ REALM_ATTR_DEPRECATED()

Realm::Processor::REALM_ATTR_DEPRECATED ( "use ProcessorGroup::create_group instead"  ,
static Processor   create_groupconst span< const Processor > &members 
)

◆ register_task()

Event Realm::Processor::register_task ( TaskFuncID  func_id,
const CodeDescriptor codedesc,
const ProfilingRequestSet prs,
const void *  user_data = 0,
size_t  user_data_len = 0 
) const

◆ register_task_by_kind()

static Event Realm::Processor::register_task_by_kind ( Kind  target_kind,
bool  global,
TaskFuncID  func_id,
const CodeDescriptor codedesc,
const ProfilingRequestSet prs,
const void *  user_data = 0,
size_t  user_data_len = 0 
)
static

◆ report_execution_fault()

static void Realm::Processor::report_execution_fault ( int  reason,
const void *  reason_data,
size_t  reason_size 
)
static

◆ report_processor_fault()

void Realm::Processor::report_processor_fault ( int  reason,
const void *  reason_data,
size_t  reason_size 
) const

◆ set_current_task_priority()

static void Realm::Processor::set_current_task_priority ( int  new_priority)
static

◆ spawn() [1/2]

Event Realm::Processor::spawn ( TaskFuncID  func_id,
const void *  args,
size_t  arglen,
const ProfilingRequestSet requests,
Event  wait_on = Event::NO_EVENT,
int  priority = 0 
) const

◆ spawn() [2/2]

Event Realm::Processor::spawn ( TaskFuncID  func_id,
const void *  args,
size_t  arglen,
Event  wait_on = Event::NO_EVENT,
int  priority = 0 
) const

Member Data Documentation

◆ id

id_t Realm::Processor::id {REALM_NO_PROC}

◆ NO_PROC

const Processor Realm::Processor::NO_PROC
static

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