12 #ifndef SSTMAC_COMMON_EVENTMANAGER_H_INCLUDED 13 #define SSTMAC_COMMON_EVENTMANAGER_H_INCLUDED 39 #if SSTMAC_INTEGRATED_SST_CORE 57 return "event manager";
94 bool reduce_all =
true,
95 bool dump_all =
false,
96 bool dump_main =
true);
101 bool reduce_all =
true,
102 bool dump_all =
false,
103 bool dump_main =
true);
236 std::map<std::string, stats_entry>
stats_;
virtual void schedule(timestamp start_time, uint32_t seqnum, event_queue_entry *event_queue_entry)=0
virtual void cancel_all_messages(event_loc_id canceled_loc)=0
virtual void multithread_schedule(int srcthread, int dstthread, uint32_t seqnum, event_queue_entry *ev)
static event_manager * global
virtual void init_factory_params(sprockit::sim_parameters *params)
static std::vector< pthread_t > pthreads_
virtual void schedule_stop(timestamp until)
A type of logger that collects some kind of statistic and outputs to a file during or at the end of a...
Base type for implementations of an engine that is able to schedule events and advance simulation tim...
stat_collector * main_collector
stat_collector * register_thread_unique_stat(stat_collector *stat, bool reduce_all=true, bool dump_all=false, bool dump_main=true)
The owner of a discrete-event network simulation.
static int current_thread_id()
static std::vector< pthread_attr_t > pthread_attrs_
virtual void clear(timestamp zero_time=timestamp(0))=0
Clear all events and set time back to a zero of your choice.
virtual void set_interconnect(hw::interconnect *interconn)
A basic container for time (subject to future transplant).
virtual bool empty() const =0
SUMI = Simulator unified messagine interface It is also the name for a solid ink in Japanese - i...
virtual ~event_manager()
Goodbye.
void register_stat(stat_collector *stat, bool reduce_all=true, bool dump_all=false, bool dump_main=true)
DeclareDebugSlot(event_manager)
virtual void run()=0
Run the eventmanager.
std::map< std::string, stats_entry > stats_
virtual event_manager * ev_man_for_thread(int thread_id) const
partition * topology_partition() const
The interface for something that can schedule messages.
parallel_runtime * runtime() const
event_manager(parallel_runtime *rt)
virtual void ipc_schedule(timestamp t, event_loc_id dst, event_loc_id src, uint32_t seqnum, event *ev)
virtual std::string to_string() const
void set_now(const timestamp &ts)
Class for storing all the partitions given to us by METIS.
std::list< stat_collector * > collectors
DeclareFactory(parallel_runtime)