ROOT-Sim core  3.0.0-rc.2
A General-Purpose Multi-threaded Parallel/Distributed Simulation Library
Macros | Typedefs | Variables
core.h File Reference

Core ROOT-Sim functionalities. More...

#include <float.h>
#include <limits.h>
#include <stdbool.h>
#include <stdint.h>
#include <ROOT-Sim.h>
Include dependency graph for core.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define max(a, b)
 Statement expression to compute the max between two values with no double evaluation side effect. More...
 
#define min(a, b)
 Statement expression to compute the min between two values with no double evaluation side effect. More...
 
#define CACHE_LINE_SIZE   64
 The size of a cpu cache line used to align some data structures in order to avoid false sharing.
 
#define likely(exp)   __builtin_expect(!!(exp), 1)
 Optimize the branch as likely taken.
 
#define unlikely(exp)   __builtin_expect((exp), 0)
 Optimize the branch as likely not taken.
 
#define SIMTIME_MAX   DBL_MAX
 The maximum value of the logical simulation time, semantically never.
 
#define MAX_NODES   (1 << 16)
 The maximum number of supported MPI nodes. More...
 
#define MAX_THREADS_EXP   12
 The maximum number of supported threads. More...
 
#define MAX_THREADS   (1 << MAX_THREADS_EXP)
 Maximum number of threads that can be supported.
 

Typedefs

typedef unsigned rid_t
 Used to identify in a node the computing resources (threads at the moment)
 
typedef int nid_t
 Used to identify MPI nodes in a distributed environment.
 

Variables

lp_id_t n_lps_node
 The total number of LPs hosted in the node. More...
 
__thread rid_t rid
 The identifier of the thread.
 
nid_t n_nodes
 The total number of MPI nodes in the simulation.
 
nid_t nid
 The node identifier of the node.
 
char * core_version
 A string keeping the textual representation of the version of the core.
 
struct simulation_configuration global_config
 The global configuration of the simulation, passed by the model.
 

Detailed Description

Core ROOT-Sim functionalities.

Core ROOT-Sim functionalities

Macro Definition Documentation

◆ max

#define max (   a,
 
)
Value:
__extension__({ \
__typeof__(a) _a = (a); \
__typeof__(b) _b = (b); \
_a > _b ? _a : _b; \
})

Statement expression to compute the max between two values with no double evaluation side effect.

◆ MAX_NODES

#define MAX_NODES   (1 << 16)

The maximum number of supported MPI nodes.

FIXME: this is used very limitedly. Consider its removal

◆ MAX_THREADS_EXP

#define MAX_THREADS_EXP   12

The maximum number of supported threads.

FIXME: this is used very limitedly. Consider its removal

◆ min

#define min (   a,
 
)
Value:
__extension__({ \
__typeof__(a) _a = (a); \
__typeof__(b) _b = (b); \
_a < _b ? _a : _b; \
})

Statement expression to compute the min between two values with no double evaluation side effect.

Variable Documentation

◆ n_lps_node

lp_id_t n_lps_node
extern

The total number of LPs hosted in the node.

The total number of LPs hosted in the node.