4 #include "scheduler.decl.h" 6 #include "gvtmanager.h" 10 extern CkGroupID scheduler_id;
25 typedef std::auto_ptr<Trigger> TriggerPtr;
27 typedef std::unique_ptr<Trigger> TriggerPtr;
59 void finalize_complete();
76 next_lps.insert(next_token, next_ts);
78 void unregister_lp(
LPToken* next_token) {
81 void update_next(
LPToken* token, Time ts) {
88 virtual void update_min_cancel(Time ts) {}
115 #if CMK_TRACE_ENABLED 116 TriggerPtr stat_trigger;
135 virtual void gvt_done(Time gvt,
bool lb);
virtual void execute()
Entry method for executing a scheduler iteration.
Definition: scheduler.C:117
PE-level variables which may change over time.
Definition: globals.h:76
Statistics * cumulative_stats
Cumulative stats over all intervals.
Definition: scheduler.h:49
void balancing_complete()
After load balancing completes we can do the next scheduler iteration.
Definition: scheduler.C:271
virtual void consume(RemoteEvent *e)
Methods for producing and consuming events for GVTs that need to know.
Definition: gvtmanager.h:50
Base class defining basic scheduler functionality.
Definition: scheduler.h:36
GVTManager * gvt_manager
Direct pointer to our local GVT Manager.
Definition: scheduler.h:111
TriggerPtr print_trigger
Determines when to print progress.
Definition: scheduler.h:114
Definition: pe_queue.h:15
virtual void gvt_done(Time gvt, bool lb)
Called when GVT is complete.
Definition: scheduler.C:220
Concrete type for sequential schedulers.
Definition: scheduler.h:96
A chare that encapsulates a set of LPStructs and their events.
Definition: lp.h:64
void groups_created()
Called after all group chares are created.
Definition: scheduler.C:174
bool running
True if there are active execute() messages.
Definition: scheduler.h:39
void end_simulation()
Starts stats reduction.
Definition: scheduler.C:61
A token representing a handle to an LP chare inside the scheduler queues.
Definition: lp.h:30
Concrete base class for distributed schedulers.
Definition: scheduler.h:109
void consume(RemoteEvent *e)
Methods informing the GVT Manager about incoming/outgoing events.
Definition: scheduler.h:138
void print_progress(Time ts)
Method for printing out basic info about the current progress.
Definition: scheduler.C:87
void register_lp(LPToken *next_token, Time next_ts)
Update the queue of LPs that are local to this PE.
Definition: scheduler.h:75
Statistics * stats
Statistics for current stat interval.
Definition: scheduler.h:48
void next_iteration()
Helper method for starting the next scheduler iteration.
Definition: scheduler.C:201
virtual void groups_created()
Entry method triggered by QD when all group chares are created.
Definition: scheduler.C:43
void finalize(CkReductionMsg *m)
Receives stats reduction and exits.
Definition: scheduler.C:74
void iteration_done()
Local methods for iteration control flow.
Definition: scheduler.C:185
string scheduler_name
Name of scheduler for print outs.
Definition: scheduler.h:38
TriggerPtr gvt_trigger
Determines when to compute GVT.
Definition: scheduler.h:113
double start_time
Start wall time for the simulation.
Definition: scheduler.h:40
double end_time
End wall time for the simulation.
Definition: scheduler.h:41
Globals * globals
Global variables per PE.
Definition: scheduler.h:47
Declares most types used within the simulator and by models.
void start_balancing()
Methods for load balancing synchronization.
Definition: scheduler.C:262
virtual Time get_min_time() const
Get the minimum time of any event on this PE.
Definition: scheduler.C:112
void start_simulation()
Methods for starting and stopping the entire simulation.
Definition: scheduler.C:52
PEQueue next_lps
queue storing LPTokens ordered by next event ts
Definition: scheduler.h:43
Definition: gvtmanager.h:14
virtual void gvt_resume()
Methods called by the GVT Manager signifying the scheduler may resume.
Definition: scheduler.C:209
Class for holding all PE level statistics for a given simulation run.
Definition: statistics.h:49
bool schedule_next_lp()
Calls execute_me() on the next LP in the queue.
Definition: scheduler.C:98