54 inline bool ccgs_can_halt_simulation(
void)
64 void ccgs_reduce_termination(
void)
66 register unsigned int i;
67 bool termination =
true;
70 for (i = 0; i <
n_prc; i++) {
110 bool check_res =
true;
112 foreach_bound_lp(lp) {
120 if (time_barrier_pointer[i] == NULL)
static bool * lps_termination
In case termination detection is incremental, this array keeps track of LPs that think the simulation...
Structure for LP's state.
void broadcast_termination(void)
Notify all the kernels about local termination.
int check_termination_mode
Check termination strategy: standard or incremental.
Core ROOT-Sim functionalities.
bool ccgs_lp_can_halt(struct lp_struct *lp)
Evaluate if the simulation can be halted according to some LP.
unsigned int to_int
The LID numerical value.
unsigned int to_int
The GID numerical value.
The ROOT-Sim scheduler main module header.
__thread struct lp_struct * current
This is a per-thread variable pointing to the block state of the LP currently scheduled.
Consistent and Committed Global State.
bool all_kernels_terminated(void)
Check if all kernels have reached the termination condition.
simulation_configuration rootsim_config
This global variable holds the configuration for the current simulation.
Memory Manager main header.
bool(* OnGVT)(unsigned int me, void *snapshot)
static bool ccgs_completed_simulation
This variable is an aggregate result for the distributed termination detection.
void ccgs_compute_snapshot(state_t *time_barrier_pointer[])
GID_t gid
Global ID of the LP.
unsigned int n_prc
Number of logical processes hosted by the current kernel instance.
bool simulation_completed
Termination predicate for this LP.
LID_t lid
Local ID of the LP.
void * current_base_pointer
The current state base pointer (updated by SetState())
#define unlikely(exp)
Optimize the branch as likely not taken.