Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
80 commits
Select commit Hold shift + click to select a range
b70b0c5
test timer report runs
Christian-B Oct 27, 2022
0326f6a
Merge branch 'neo_database' into time_report2
Christian-B Jan 11, 2023
16bfd13
Merge branch 'neo_database' into time_report2
Christian-B Jan 17, 2023
a6509ff
speedup by converting lists to sets to do intersection
Christian-B Jan 18, 2023
55dd2f1
Pop timer categories
Christian-B Jan 18, 2023
6626598
Pop timer categories
Christian-B Jan 18, 2023
0e7897f
fix category
Christian-B Jan 18, 2023
155677b
more use of set
Christian-B Jan 19, 2023
16e2c06
merged in master
Christian-B Jan 24, 2023
17fb611
merged in master
Christian-B Jan 25, 2023
555292f
merged in master
Christian-B Feb 1, 2023
db7b927
merged in master
Christian-B Feb 2, 2023
0b49002
merge
Christian-B Feb 3, 2023
11ca33b
make sure end timer is reachable
Christian-B Feb 3, 2023
6115ead
merged in master
Christian-B Feb 6, 2023
884f9bd
merged in master
Christian-B Feb 10, 2023
e143f6a
merged in master
Christian-B Feb 13, 2023
a2a99f8
merged in master
Christian-B Feb 16, 2023
7b76648
merge
Christian-B Feb 16, 2023
13a40a5
merged in master
Christian-B Feb 20, 2023
46519aa
merged in master
Christian-B Feb 24, 2023
74a6f74
merged in master
Christian-B Mar 6, 2023
7bebeed
merged in master
Christian-B Mar 7, 2023
5e45170
merged in master
Christian-B Mar 8, 2023
2ed15f8
merged in master
Christian-B Mar 8, 2023
cb9c273
merged in master
Christian-B Mar 10, 2023
5771a1b
merged in master
Christian-B Mar 28, 2023
715b7c3
merged in master
Christian-B Mar 30, 2023
d26265d
merged in master
Christian-B Apr 4, 2023
3f58ce7
merged in master
Christian-B Apr 4, 2023
9f58769
merged in master
Christian-B Apr 11, 2023
f57fe90
merged in master
Christian-B Apr 12, 2023
89458d7
merged in master
Christian-B Apr 13, 2023
08dba8c
merged in master
Christian-B Apr 14, 2023
dd98593
merged in master
Christian-B Apr 18, 2023
d2ae462
merged in master
Christian-B Apr 20, 2023
3514aad
merged in master
Christian-B Apr 24, 2023
a1f66eb
merged in master
Christian-B Apr 24, 2023
93f3748
merged in master
Christian-B Apr 24, 2023
5f62749
merged in master
Christian-B Apr 26, 2023
7edbf4d
ds.sqlite3 is in the run dir
Christian-B Apr 26, 2023
71c8721
rename variable hinding an import
Christian-B Apr 26, 2023
b3fe120
merged in master
Christian-B Apr 26, 2023
cc4a152
merged in master
Christian-B Apr 27, 2023
a1ddb36
merged in master
Christian-B May 2, 2023
923756c
merged in master
Christian-B May 3, 2023
f078fba
merged in master
Christian-B May 4, 2023
6c2eb4e
merged in master
Christian-B May 16, 2023
52595c6
merged in master
Christian-B May 25, 2023
d29ce58
merged in master
Christian-B May 25, 2023
28fc4a1
merged in master
Christian-B May 26, 2023
c145a06
merged in master
Christian-B May 30, 2023
dfe5f21
merged in master
Christian-B Jun 1, 2023
9ecce39
merged in master
Christian-B Jun 2, 2023
bd81125
merged in master
Christian-B Jun 15, 2023
ecdf11b
merged in master
Christian-B Jun 15, 2023
d7b9add
merged in master
Christian-B Jun 15, 2023
e66ec46
merged in master
Christian-B Jun 15, 2023
84ed6e3
merged in master
Christian-B Jun 20, 2023
ec11ba7
merged in master
Christian-B Jun 21, 2023
e41dea4
Merge branch 'master' into time_report2
Christian-B Jul 5, 2023
a8f05c9
merged in master
Christian-B Jul 5, 2023
92330bc
merged in master
Christian-B Jul 6, 2023
3090ec7
merged in master
Christian-B Jul 6, 2023
4b84db3
merged in master
Christian-B Jul 6, 2023
7730d59
merged in master
Christian-B Jul 10, 2023
b05b335
merged in master
Christian-B Jul 18, 2023
7e1dc4a
merged in master
Christian-B Jul 20, 2023
5a9e198
merged in master
Christian-B Jul 28, 2023
24ec892
merged in master
Christian-B Aug 15, 2023
1a357d9
merged in master
Christian-B Aug 17, 2023
e086d90
merged in master
Christian-B Sep 11, 2023
127b93b
merged in master
Christian-B Sep 11, 2023
81ee6dc
merged in master
Christian-B Sep 14, 2023
a6855f9
merged in master
Christian-B Sep 15, 2023
371c232
merged in master
Christian-B Sep 26, 2023
5f62397
merged in master
Christian-B Sep 26, 2023
2fde8ea
merged in master
Christian-B Sep 29, 2023
8f37356
merged in master
Christian-B Oct 2, 2023
6c44544
merged in master
Christian-B Oct 2, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 16 additions & 1 deletion spynnaker/pyNN/models/populations/population.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,8 @@
from spinn_utilities.log import FormatAdapter
from spinn_utilities.logger_utils import warn_once
from spinn_utilities.overrides import overrides
from spinn_front_end_common.interface.provenance import (
FecTimer, TimerCategory)
from spinn_front_end_common.utilities.exceptions import ConfigurationException
from spynnaker.pyNN.data import SpynnakerDataView
from spynnaker.pyNN.exceptions import SpynnakerException
Expand Down Expand Up @@ -190,8 +192,10 @@ def record(self, variables, to_file=None, sampling_interval=None):
:param int sampling_interval: a value in milliseconds, and an integer
multiple of the simulation timestep.
"""
FecTimer.start_category(TimerCategory.POP_RECORD)
self.__recorder.record(
variables, to_file, sampling_interval, indexes=None)
FecTimer.end_category(TimerCategory.POP_RECORD)

def sample(self, n, rng=None):
"""
Expand Down Expand Up @@ -241,6 +245,7 @@ def write_data(self, io, variables='all', gather=True, clear=False,
record.
"""
# pylint: disable=too-many-arguments
FecTimer.start_category(TimerCategory.POP_GET_DATA)
self._check_params(gather, annotations)

if isinstance(io, str):
Expand All @@ -253,8 +258,11 @@ def write_data(self, io, variables='all', gather=True, clear=False,

data = self.__recorder.extract_neo_block(
variables, None, clear, annotations)
FecTimer.end_category(TimerCategory.POP_GET_DATA)
FecTimer.start_category(TimerCategory.POP_WRITE_DATA)
# write the neo block to the file
io.write(data)
FecTimer.end_category(TimerCategory.POP_WRITE_DATA)

def describe(self, template='population_default.txt', engine='default'):
"""
Expand Down Expand Up @@ -335,9 +343,12 @@ def get_data(
If the variable or variables have not been previously set to
record.
"""
FecTimer.start_category(TimerCategory.POP_GET_DATA)
self._check_params(gather, annotations)
return self.__recorder.extract_neo_block(
neo_data = self.__recorder.extract_neo_block(
variables, None, clear, annotations)
FecTimer.end_category(TimerCategory.POP_GET_DATA)
return neo_data

def spinnaker_get_data(self, variable, as_matrix=False, view_indexes=None):
"""
Expand All @@ -352,12 +363,14 @@ def spinnaker_get_data(self, variable, as_matrix=False, view_indexes=None):
:return: array of the data
:rtype: ~numpy.ndarray
"""
FecTimer.start_category(TimerCategory.POP_GET_DATA)
warn_once(
logger, "spinnaker_get_data is non-standard PyNN and therefore "
"will not be portable to other simulators.")
with NeoBufferDatabase() as db:
return db.spinnaker_get_data(self.__recorder.recording_label,
variable, as_matrix, view_indexes)
FecTimer.end_category(TimerCategory.POP_GET_DATA)

@overrides(PopulationBase.get_spike_counts, extend_doc=False)
def get_spike_counts(self, gather=True):
Expand All @@ -366,9 +379,11 @@ def get_spike_counts(self, gather=True):

:rtype: ~numpy.ndarray
"""
FecTimer.start_category(TimerCategory.POP_GET_DATA)
self._check_params(gather)
with NeoBufferDatabase() as db:
return db.get_spike_counts(self.__recorder.recording_label)
FecTimer.end_category(TimerCategory.POP_GET_DATA)

def find_units(self, variable):
"""
Expand Down
10 changes: 10 additions & 0 deletions spynnaker/pyNN/models/populations/population_view.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,8 @@
from spinn_utilities.ranged.abstract_sized import AbstractSized
from .population_base import PopulationBase
from spinn_utilities.overrides import overrides
from spinn_front_end_common.interface.provenance import (
FecTimer, TimerCategory)
from spynnaker.pyNN.utilities.neo_buffer_database import NeoBufferDatabase
from spynnaker.pyNN.utilities.utility_calls import get_neo_io

Expand Down Expand Up @@ -353,13 +355,15 @@ def get_data(
If the variable or variables have not been previously set to
record.
"""
FecTimer.start_category(TimerCategory.POP_GET_DATA)
if not gather:
logger.warning("SpiNNaker only supports gather=True. We will run "
"as if gather was set to True.")
if annotations is not None:
warn_once(
logger, "Annotations parameter is not standard PyNN so may "
"not be supported by all platforms.")
FecTimer.end_category(TimerCategory.POP_GET_DATA)

return self.__recorder.extract_neo_block(
variables, self.__indexes, clear, annotations)
Expand Down Expand Up @@ -517,8 +521,10 @@ def record(self, variables, to_file=None, sampling_interval=None):
should be a value in milliseconds, and an integer multiple of the
simulation timestep.
"""
FecTimer.start_category(TimerCategory.POP_RECORD)
self.__recorder.record(
variables, to_file, sampling_interval, self.__indexes)
FecTimer.end_category(TimerCategory.POP_RECORD)

def sample(self, n, rng=None):
"""
Expand Down Expand Up @@ -596,6 +602,7 @@ def write_data(self, io, variables='all', gather=True, clear=False,
If the variable or variables have not been previously set to
record.
"""
FecTimer.start_category(TimerCategory.POP_WRITE_DATA)
if not gather:
logger.warning("SpiNNaker only supports gather=True. We will run "
"as if gather was set to True.")
Expand All @@ -608,11 +615,14 @@ def write_data(self, io, variables='all', gather=True, clear=False,
return
io = get_neo_io(io)

FecTimer.start_category(TimerCategory.POP_GET_DATA)
data = self.__recorder.extract_neo_block(
variables, self.__indexes, clear, annotations)
FecTimer.end_category(TimerCategory.POP_GET_DATA)

# write the neo block to the file
io.write(data)
FecTimer.end_category(TimerCategory.POP_WRITE_DATA)

@property
@overrides(PopulationBase._vertex)
Expand Down
4 changes: 4 additions & 0 deletions spynnaker_integration_tests/test_debug_mode/check_debug.py
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,8 @@
# import EnergyReport
from spinn_front_end_common.utilities.report_functions.board_chip_report \
import AREA_CODE_REPORT_NAME
from spinn_front_end_common.utilities.report_functions.timer_report import (
TIMER_FILENAME)
from spinn_front_end_common.utility_models import \
DataSpeedUpPacketGatherMachineVertex
from spinnaker_testbase import BaseTestCase
Expand Down Expand Up @@ -142,3 +144,5 @@ def debug(self):
self.assertIn("ds3.sqlite3", found)

sim.end()
found = os.listdir(SpynnakerDataView.get_timestamp_dir_path())
self.assertIn(TIMER_FILENAME, found)
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,8 @@
reports_names
from spinn_front_end_common.utilities.report_functions.network_specification \
import _FILENAME as network_specification_file_name
from spinn_front_end_common.utilities.report_functions.timer_report import (
TIMER_FILENAME)
from spinnaker_testbase import BaseTestCase
from spynnaker.pyNN.data import SpynnakerDataView
from spynnaker.pyNN.extra_algorithms.\
Expand Down Expand Up @@ -90,6 +92,8 @@ def debug(self):
for report in reports:
self.assertIn(report, found)
self.assertIn("ds.sqlite3", found)
found = os.listdir(SpynnakerDataView.get_timestamp_dir_path())
self.assertIn(TIMER_FILENAME, found)

def test_debug(self):
self.runsafe(self.debug)
Expand Down