 |
The ROme OpTimistic Simulator
3.0.0
A General-Purpose Multithreaded Parallel/Distributed Simulation Platform
|
Go to the documentation of this file.
26 __typeof__ (a) _a = (a); \
27 __typeof__ (b) _b = (b); \
36 __typeof__ (a) _a = (a); \
37 __typeof__ (b) _b = (b); \
41 #ifndef CACHE_LINE_SIZE // TODO: calculate and inject at build time
44 #define CACHE_LINE_SIZE 128
57 #define likely(exp) __builtin_expect(!!(exp), 1)
58 #define unlikely(exp) __builtin_expect((exp), 0)
64 #define SIMTIME_MAX DBL_MAX
68 #define MAX_NODES (1 << 16)
71 #define MAX_THREADS (1 << 10)
72 #define lid_to_nid(lid) (nid_t)(lid / n_lps_node)
98 enum {
nid = 0, n_nodes = 1};
102 const void *content,
unsigned size,
void *state);
104 const void *content,
unsigned size,
void *state);
105 extern bool CanEnd(
lp_id_t me,
const void *state);
double simtime_t
The type used to represent logical time in the simulation.
unsigned rid_t
Used to identify in a node the computing resources (threads at the moment)
int nid_t
Used to identify MPI nodes in a distributed environment.
lp_id_t n_lps
The total number of LPs in the simulation.
rid_t n_threads
The total number of MPI nodes in the simulation.
void ProcessEvent(lp_id_t me, simtime_t now, unsigned event_type, const void *content, unsigned size, void *state)
The total number of threads running in the node.
__thread rid_t rid
The identifier of the thread.
nid_t nid
The node identifier of the node.
uint64_t lp_id_t
Used to uniquely identify LPs in the simulation.
lp_id_t n_lps_node
The total number of LPs hosted in the node.
Memory Manager main header.