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

#include <proc_impl.h>

Inheritance diagram for Realm::ProcessorGroupImpl:
Collaboration diagram for Realm::ProcessorGroupImpl:

Classes

class  DeferredDestroy
 

Public Member Functions

 ProcessorGroupImpl (void)
 
virtual ~ProcessorGroupImpl (void)
 
void init (ID _me, int _owner)
 
void set_group_members (span< const Processor > member_list)
 
void destroy (void)
 
void get_group_members (std::vector< Processor > &member_list)
 
virtual void enqueue_task (Task *task)
 
virtual void enqueue_tasks (Task::TaskList &tasks, size_t num_tasks)
 
virtual void add_to_group (ProcessorGroupImpl *group)
 
virtual void remove_from_group (ProcessorGroupImpl *group)
 
virtual void spawn_task (Processor::TaskFuncID func_id, const void *args, size_t arglen, const ProfilingRequestSet &reqs, Event start_event, GenEventImpl *finish_event, EventImpl::gen_t finish_gen, int priority)
 
void request_group_members (void)
 
- Public Member Functions inherited from Realm::ProcessorImpl
 ProcessorImpl (RuntimeImpl *runtime_impl, Processor _me, Processor::Kind _kind, int _num_cores=1)
 
virtual ~ProcessorImpl (void)
 
virtual void start_threads (void)
 
virtual void shutdown (void)
 
virtual bool register_task (Processor::TaskFuncID func_id, CodeDescriptor &codedesc, const ByteArrayRef &user_data)
 
virtual void add_internal_task (InternalTask *task)
 
GenEventImplcreate_genevent ()
 
void free_genevent (GenEventImpl *)
 

Static Public Member Functions

static ID make_id (const ProcessorGroupImpl &dummy, int owner, ID::IDType index)
 
- Static Public Member Functions inherited from Realm::ProcessorImpl
static Processor::Kind get_processor_kind (RuntimeImpl *runtime_impl, Processor processor)
 

Public Attributes

bool members_valid
 
bool members_requested
 
std::vector< ProcessorImpl * > members
 
ReservationImpl lock
 
ProcessorGroupImplnext_free
 
TaskQueue task_queue
 
ProfilingGauges::AbsoluteRangeGauge< int > * ready_task_count
 
DeferredSpawnCache deferred_spawn_cache
 
DeferredDestroy deferred_destroy
 
- Public Attributes inherited from Realm::ProcessorImpl
Processor me
 
Processor::Kind kind
 
int num_cores
 

Static Public Attributes

static const ID::ID_Types ID_TYPE = ID::ID_PROCGROUP
 

Additional Inherited Members

- Protected Member Functions inherited from Realm::ProcessorImpl
virtual void execute_task (Processor::TaskFuncID func_id, const ByteArrayRef &task_args)
 
void enqueue_or_defer_task (Task *task, Event start_event, DeferredSpawnCache *cache)
 
- Protected Attributes inherited from Realm::ProcessorImpl
LocalEventTableAllocator::FreeList free_local_events
 

Constructor & Destructor Documentation

◆ ProcessorGroupImpl()

Realm::ProcessorGroupImpl::ProcessorGroupImpl ( void  )

◆ ~ProcessorGroupImpl()

virtual Realm::ProcessorGroupImpl::~ProcessorGroupImpl ( void  )
virtual

Member Function Documentation

◆ add_to_group()

virtual void Realm::ProcessorGroupImpl::add_to_group ( ProcessorGroupImpl group)
virtual

Implements Realm::ProcessorImpl.

◆ destroy()

void Realm::ProcessorGroupImpl::destroy ( void  )

◆ enqueue_task()

virtual void Realm::ProcessorGroupImpl::enqueue_task ( Task task)
virtual

Implements Realm::ProcessorImpl.

◆ enqueue_tasks()

virtual void Realm::ProcessorGroupImpl::enqueue_tasks ( Task::TaskList tasks,
size_t  num_tasks 
)
virtual

Implements Realm::ProcessorImpl.

◆ get_group_members()

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

◆ init()

void Realm::ProcessorGroupImpl::init ( ID  _me,
int  _owner 
)

◆ make_id()

static ID Realm::ProcessorGroupImpl::make_id ( const ProcessorGroupImpl dummy,
int  owner,
ID::IDType  index 
)
inlinestatic

◆ remove_from_group()

virtual void Realm::ProcessorGroupImpl::remove_from_group ( ProcessorGroupImpl group)
virtual

Implements Realm::ProcessorImpl.

◆ request_group_members()

void Realm::ProcessorGroupImpl::request_group_members ( void  )

◆ set_group_members()

void Realm::ProcessorGroupImpl::set_group_members ( span< const Processor member_list)

◆ spawn_task()

virtual void Realm::ProcessorGroupImpl::spawn_task ( Processor::TaskFuncID  func_id,
const void *  args,
size_t  arglen,
const ProfilingRequestSet reqs,
Event  start_event,
GenEventImpl finish_event,
EventImpl::gen_t  finish_gen,
int  priority 
)
virtual

Implements Realm::ProcessorImpl.

Member Data Documentation

◆ deferred_destroy

DeferredDestroy Realm::ProcessorGroupImpl::deferred_destroy

◆ deferred_spawn_cache

DeferredSpawnCache Realm::ProcessorGroupImpl::deferred_spawn_cache

◆ ID_TYPE

const ID::ID_Types Realm::ProcessorGroupImpl::ID_TYPE = ID::ID_PROCGROUP
static

◆ lock

ReservationImpl Realm::ProcessorGroupImpl::lock

◆ members

std::vector<ProcessorImpl *> Realm::ProcessorGroupImpl::members

◆ members_requested

bool Realm::ProcessorGroupImpl::members_requested

◆ members_valid

bool Realm::ProcessorGroupImpl::members_valid

◆ next_free

ProcessorGroupImpl* Realm::ProcessorGroupImpl::next_free

◆ ready_task_count

ProfilingGauges::AbsoluteRangeGauge<int>* Realm::ProcessorGroupImpl::ready_task_count

◆ task_queue

TaskQueue Realm::ProcessorGroupImpl::task_queue

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