@@ -16,20 +16,20 @@ querying the corresponding kernel attributes. For example:
16
16
17
17
The following basic time measurements are available:
18
18
19
- +-----------------------------+----------------------------------+
20
- | Name | Explanation |
21
- +=============================+==================================+
22
- | ``time_construction_create`` | Cumulative time NEST spent |
23
- | | creating neurons and devices |
24
- +-----------------------------+----------------------------------+
25
- | ``time_construction_connect``| Cumulative time NEST spent |
26
- | | creating connections |
27
- +-----------------------------+----------------------------------+
28
- | ``time_simulate`` | Time NEST spent in the last |
29
- | | ``Simulate()`` |
30
- +-----------------------------+----------------------------------+
31
-
32
- .. note ::
19
+ +------------------------------- +----------------------------------+
20
+ | Name | Explanation |
21
+ +=============================== +==================================+
22
+ | ``time_construction_create `` | Cumulative time NEST spent |
23
+ | | creating neurons and devices |
24
+ +------------------------------- +----------------------------------+
25
+ | ``time_construction_connect `` | Cumulative time NEST spent |
26
+ | | creating connections |
27
+ +------------------------------- +----------------------------------+
28
+ | ``time_simulate `` | Time NEST spent in the last |
29
+ | | ``Simulate() `` |
30
+ +------------------------------- +----------------------------------+
31
+
32
+ .. note ::
33
33
34
34
While preparing the actual simulation after network construction, NEST needs to build the pre-synaptic part of the
35
35
connection infrastructure, which requires MPI communication (`Jordan et al. 2018
@@ -40,18 +40,18 @@ The following basic time measurements are available:
40
40
41
41
In the context of NEST performance monitoring, other useful kernel attributes are:
42
42
43
- +-----------------------+ ----------------------------------+
44
- | Name | Explanation |
45
- +=======================+ ==================================+
46
- | ``biological_time`` | Cumulative simulated time |
47
- +-----------------------+ ----------------------------------+
48
- | ``local_spike_counter``| Number of spikes emitted by the |
49
- | | neurons represented on this MPI |
50
- | | rank during the last |
51
- | | ``Simulate()`` |
52
- +-----------------------+ ----------------------------------+
43
+ +-------------------------+- ----------------------------------+
44
+ | Name | Explanation |
45
+ +=========================+= ==================================+
46
+ | ``biological_time `` | Cumulative simulated time |
47
+ +-------------------------+- ----------------------------------+
48
+ | ``local_spike_counter `` | Number of spikes emitted by the |
49
+ | | neurons represented on this MPI |
50
+ | | rank during the last |
51
+ | | ``Simulate() `` |
52
+ +-------------------------+- ----------------------------------+
53
53
54
- .. note ::
54
+ .. note ::
55
55
56
56
``nest.ResetKernel() `` resets all time measurements as well as ``biological_time `` and ``local_spike_counter ``.
57
57
@@ -65,40 +65,43 @@ simulation cycle, but they can impact the runtime. Therefore, detailed timers ar
65
65
66
66
If detailed timers are active, the following time measurements are available as kernel attributes:
67
67
68
- +--------------------------------+----------------------------------+----------------------------------+
69
- | Name |Explanation |Part of |
70
- +================================+==================================+==================================+
71
- | ``time_gather_target_data`` |Cumulative time for communicating |``time_communicate_prepare`` |
72
- | |connection information from | |
73
- | |postsynaptic to presynaptic side | |
74
- +--------------------------------+----------------------------------+----------------------------------+
75
- | ``time_communicate_target_data``|Cumulative time for core MPI |``time_gather_target_data`` |
76
- | |communication when gathering | |
77
- | |target data | |
78
- +--------------------------------+----------------------------------+----------------------------------+
79
- | ``time_update`` |Time for neuron update |``time_simulate`` |
80
- +--------------------------------+----------------------------------+----------------------------------+
81
- | ``time_gather_spike_data`` |Time for complete spike exchange |``time_simulate`` |
82
- | |after update phase | |
83
- +--------------------------------+----------------------------------+----------------------------------+
84
- | ``time_collocate_spike_data`` |Time to collocate MPI send buffer |``time_gather_spike_data`` |
85
- | |from spike register | |
86
- +--------------------------------+----------------------------------+----------------------------------+
87
- | ``time_communicate_spike_data`` |Time for communicating spikes |``time_gather_spike_data`` |
88
- | |between compute nodes | |
89
- +--------------------------------+----------------------------------+----------------------------------+
90
- | ``time_deliver_spike_data`` |Time to deliver events from the |``time_gather_spike_data`` |
91
- | |MPI receive buffers to their | |
92
- | |local synaptic targets (including | |
93
- | |synaptic update, e.g. STDP | |
94
- | |synapses) and to the spike ring | |
95
- | |buffers of the corresponding | |
96
- | |postsynaptic neurons | |
97
- +--------------------------------+----------------------------------+----------------------------------+
98
- | ``time_omp_synchronization_construction`` |Synchronization time of threads during network construction. |``time_construction_create``, ``time_construction_connect``, ``time_communicate_prepare`` |
99
- +--------------------------------+----------------------------------+----------------------------------+
100
- | ``time_omp_synchronization_simulation`` |Synchronization time of threads during simulation. |``time_simulate`` |
101
- +--------------------------------+----------------------------------+----------------------------------+
68
+ +-------------------------------------------+-----------------------------------+----------------------------------+
69
+ | Name | Explanation | Part of |
70
+ +===========================================+===================================+==================================+
71
+ | ``time_gather_target_data `` | Cumulative time for communicating | ``time_communicate_prepare `` |
72
+ | | connection information from | |
73
+ | | postsynaptic to presynaptic side | |
74
+ +-------------------------------------------+-----------------------------------+----------------------------------+
75
+ | ``time_communicate_target_data `` | Cumulative time for core MPI | ``time_gather_target_data `` |
76
+ | | communication when gathering | |
77
+ | | target data | |
78
+ +-------------------------------------------+-----------------------------------+----------------------------------+
79
+ | ``time_update `` | Time for neuron update | ``time_simulate `` |
80
+ +-------------------------------------------+-----------------------------------+----------------------------------+
81
+ | ``time_gather_spike_data `` | Time for complete spike exchange | ``time_simulate `` |
82
+ | | after update phase | |
83
+ +-------------------------------------------+-----------------------------------+----------------------------------+
84
+ | ``time_collocate_spike_data `` | Time to collocate MPI send buffer | ``time_gather_spike_data `` |
85
+ | | from spike register | |
86
+ +-------------------------------------------+-----------------------------------+----------------------------------+
87
+ | ``time_communicate_spike_data `` | Time for communicating spikes | ``time_gather_spike_data `` |
88
+ | | between compute nodes | |
89
+ +-------------------------------------------+-----------------------------------+----------------------------------+
90
+ | ``time_deliver_spike_data `` | Time to deliver events from the | ``time_gather_spike_data `` |
91
+ | | MPI receive buffers to their | |
92
+ | | local synaptic targets (including | |
93
+ | | synaptic update, e.g. STDP | |
94
+ | | synapses) and to the spike ring | |
95
+ | | buffers of the corresponding | |
96
+ | | postsynaptic neurons | |
97
+ +-------------------------------------------+-----------------------------------+----------------------------------+
98
+ | ``time_omp_synchronization_construction `` | Synchronization time of threads | ``time_construction_create ``, |
99
+ | | during network construction. | ``time_construction_connect ``, |
100
+ | | | ``time_communicate_prepare `` |
101
+ +-------------------------------------------+-----------------------------------+----------------------------------+
102
+ | ``time_omp_synchronization_simulation `` | Synchronization time of threads | ``time_simulate `` |
103
+ | | during simulation. | |
104
+ +-------------------------------------------+-----------------------------------+----------------------------------+
102
105
103
106
MPI synchronization timer
104
107
-------------------------
@@ -107,11 +110,11 @@ via the ``-Dwith-mpi-sync-timer=ON`` CMake flag. This timer measures the time be
107
110
(i.e., neuron state propagation) and start of collective communication of spikes between all MPI processes. This timer
108
111
adds an additional MPI barrier right before the start of communication, which might affect performance.
109
112
110
- +-----------------------------+ ---------------------------------------+
111
- | Name |Explanation |
112
- +=============================+ =======================================+
113
- | ``time_mpi_synchronization`` |Time spent waiting for other processes.|
114
- +-----------------------------+ ---------------------------------------+
113
+ +------------------------------+-- ---------------------------------------+
114
+ | Name | Explanation |
115
+ +==============================+== =======================================+
116
+ | ``time_mpi_synchronization `` | Time spent waiting for other processes. |
117
+ +------------------------------+-- ---------------------------------------+
115
118
116
119
Multi-threaded timers
117
120
---------------------
0 commit comments