23#ifndef KERNEL_MANAGER_H
24#define KERNEL_MANAGER_H
51#ifdef ENABLE_FULL_LOGGING
52#define FULL_LOGGING_ONLY( code ) code
54#define FULL_LOGGING_ONLY( code )
Dictionary class for interface to Python and C++ API.
Definition dictionary.h:213
Base class for RNG engine wrappers.
Definition random_generators.h:67
Definition connection_manager.h:62
Definition event_delivery_manager.h:59
Manager to handle everything related to input and output.
Definition io_manager.h:49
Global properties of the simulation kernel.
Definition kernel_manager.h:148
KernelManager(KernelManager const &)
static KernelManager & get_kernel_manager()
Definition kernel_manager.h:304
Stopwatch< StopwatchGranularity::Detailed, StopwatchParallelism::Threaded > & get_omp_synchronization_construction_stopwatch()
Get the stopwatch to measure the time each thread is idle during network construction.
Definition kernel_manager.h:250
Stopwatch< StopwatchGranularity::Detailed, StopwatchParallelism::MasterOnly > sw_mpi_synchronization_
Definition kernel_manager.h:280
Stopwatch< StopwatchGranularity::Detailed, StopwatchParallelism::Threaded > & get_omp_synchronization_simulation_stopwatch()
Get the stopwatch to measure the time each thread is idle during simulation.
Definition kernel_manager.h:257
size_t get_memsize_linux_() const
return VmSize in kB
Definition kernel_manager.cpp:390
void cleanup()
Definition kernel_manager.cpp:232
void set_status(const Dictionary &)
Definition kernel_manager.cpp:300
~KernelManager()
Definition kernel_manager.cpp:197
Stopwatch< StopwatchGranularity::Detailed, StopwatchParallelism::Threaded > sw_omp_synchronization_construction_
Definition kernel_manager.h:278
static void create_kernel_manager()
Create/destroy and access the KernelManager singleton.
Definition kernel_manager.cpp:150
KernelManager()
Definition kernel_manager.cpp:163
unsigned long get_fingerprint() const
Definition kernel_manager.h:323
bool initialized_
true if the kernel is initialized
Definition kernel_manager.h:275
void finalize()
Take down kernel after operation.
Definition kernel_manager.cpp:241
void prepare()
Definition kernel_manager.cpp:220
size_t get_memsize_darwin_() const
return resident_size in kB
Definition kernel_manager.cpp:418
void initialize()
Prepare kernel for operation.
Definition kernel_manager.cpp:202
void reset()
Reset kernel.
Definition kernel_manager.cpp:253
Stopwatch< StopwatchGranularity::Detailed, StopwatchParallelism::Threaded > sw_omp_synchronization_simulation_
Definition kernel_manager.h:279
static KernelManager * kernel_manager_instance_
Definition kernel_manager.h:155
bool is_initialized() const
Returns true if kernel is initialized.
Definition kernel_manager.h:317
void operator=(KernelManager const &)
void get_status(Dictionary &)
Definition kernel_manager.cpp:311
std::ofstream dump_
for FULL_LOGGING output
Definition kernel_manager.h:276
unsigned long fingerprint_
Definition kernel_manager.h:153
Stopwatch< StopwatchGranularity::Detailed, StopwatchParallelism::MasterOnly > & get_mpi_synchronization_stopwatch()
Definition kernel_manager.h:263
void write_to_dump(const std::string &msg)
Write data to file per rank and thread.
Definition kernel_manager.cpp:343
Dictionary get_build_info_()
Definition kernel_manager.cpp:42
void change_number_of_threads(size_t new_num_threads)
Change number of threads.
Definition kernel_manager.cpp:260
std::vector< ManagerInterface * > managers
All managers, order determines initialization and finalization order (latter backwards)
Definition kernel_manager.h:273
Definition logging_manager.h:45
Definition mpi_manager.h:57
Encapsulate all calls to MUSIC.
Definition music_manager.h:49
Definition model_manager.h:45
Definition modelrange_manager.h:41
Definition module_manager.h:88
Definition node_manager.h:47
Manage the kernel's random number generators.
Definition random_manager.h:50
RngPtr get_vp_synced_rng(size_t tid) const
Get VP-synchronized random number generator.
Definition random_manager.h:154
RngPtr get_rank_synced_rng() const
Get rank-synchronized random number generator.
Definition random_manager.h:148
RngPtr get_vp_specific_rng(size_t tid) const
Get VP-specific random number generator.
Definition random_manager.h:161
The SPManager class is in charge of managing the dynamic creation and deletion of synapses in the sim...
Definition sp_manager.h:53
Definition simulation_manager.h:47
Definition vp_manager.h:50
ConnectionManager connection_manager
Definition kernel_manager.h:239
SPManager sp_manager
Definition kernel_manager.h:240
MUSICManager music_manager
Definition kernel_manager.h:244
LoggingManager logging_manager
Definition kernel_manager.h:232
NodeManager node_manager
Definition kernel_manager.h:245
ModelManager model_manager
Definition kernel_manager.h:243
ModuleManager module_manager
Definition kernel_manager.h:235
EventDeliveryManager event_delivery_manager
Definition kernel_manager.h:241
SimulationManager simulation_manager
Definition kernel_manager.h:237
ModelRangeManager modelrange_manager
Definition kernel_manager.h:238
RandomManager random_manager
Definition kernel_manager.h:236
IOManager io_manager
Definition kernel_manager.h:242
MPIManager mpi_manager
Definition kernel_manager.h:233
VPManager vp_manager
Definition kernel_manager.h:234
Namespace for the NEST simulation kernel.
Definition beta_normalization_factor.h:33
RngPtr get_vp_specific_rng(size_t tid)
Definition kernel_manager.h:298
RngPtr get_vp_synced_rng(size_t tid)
Definition kernel_manager.h:292
RngPtr get_rank_synced_rng()
Definition kernel_manager.h:286
BaseRandomGenerator * RngPtr
Definition random_generators.h:50
KernelManager & kernel()
Definition kernel_manager.h:311