Skip to content

Commit

Permalink
Merge pull request #1193 from SpiNNakerManchester/cfg_checker
Browse files Browse the repository at this point in the history
Cfg checker
  • Loading branch information
rowleya authored Jul 2, 2024
2 parents 9015218 + b4a180e commit 3d5bda6
Show file tree
Hide file tree
Showing 3 changed files with 30 additions and 105 deletions.
130 changes: 28 additions & 102 deletions spinn_front_end_common/interface/spinnaker.cfg
Original file line number Diff line number Diff line change
@@ -1,46 +1,11 @@
# DO NOT EDIT
# See https://spinnakermanchester.github.io/spynnaker/PyNNOnSpinnakerInstall.html Section Configuration
# See spinnakermanchester.github.io/common_pages/Algorithms.html
# DO NOT EDIT!
# The are the default values
# Edit the cfg in your home directory to change your preferences
# Add / Edit a cfg in the run directory for script specific changes

# Adds or overwrites values in PACMAN/pacman/pacman.cfg and SpiNNMan/spinnman/spinnman.cfg
# Which in turn adds or overwrites values in SpiNNUtils/spinn_utilities/spinn_utilities.cfg

[Logging]
# ------
# Logging levels are as specified for the Python logging module.
# Listing a module below overrides the default logging level for that module
# and its children (unless they are also overridden).
#
# e.g., the following sample would set the default level to info, but display
# debug messages for pacman103.front.pynn, and only display warning messages
# for pacman.core
#
# default = info
# debug = front.pynn
# info =
# warning = core
# error =
# critical =
#
# The ```instantiate``` option determines whether front-ends set up loggers.
# If ```instantiate``` is True then users do not need to set up their own
# loggers. If it is False, then users need to instantiate a logger at the top
# of each script, this is simply achieved by inserting the following lines at
# the top of the file.
#
# include logging
# logger = logging.basicConfig()
#
instantiate = True
default = info
debug =
info =
warning =
error =
critical =

# Note log levels set above does not change the log message reported at the
# end of the run
# Adds to values in PACMAN/pacman/pacman.cfg and SpiNNMan/spinnman/spinnman.cfg
# Which in turn adds to values in SpiNNUtils/spinn_utilities/spinn_utilities.cfg
# and SpiNNMachine/spinn_machine/spinn_machine.cfg

[Reports]
# If reportsEnabled is false, no text reports are written.
Expand All @@ -52,10 +17,8 @@ reports_enabled = True
write_energy_report = False
write_router_reports = False
write_router_summary_report = False
write_compressed_router_summary_report = False
write_partitioner_reports = True
write_application_graph_placer_report = True
write_machine_graph_placer_report = False
write_router_info_report = True
write_uncompressed = False
write_compressed = False
Expand All @@ -75,19 +38,15 @@ write_board_chip_report = True
write_data_speed_up_reports = False
write_sdram_usage_report_per_chip = True
write_json_machine = False
write_json_machine_graph = False
write_json_placements = False
write_json_routing_tables = False
write_json_partition_n_keys_map = False
write_compressor_iobuf = False
write_bit_field_compressor_report = False
write_router_compression_with_bitfield_report = True
write_drift_report_start = False
write_drift_report_end = False
write_text_specs = False

max_reports_kept = 10
max_application_binaries_kept = 10
remove_errored_folders = False

display_algorithm_timings = True
Expand All @@ -100,6 +59,11 @@ provenance_report_cutoff = 20

drift_report_ethernet_only = True

# NOTE ***that for bespoke file paths, folders will not be automatically deleted***
# options are DEFAULT or a file path
# Note for hard coded locations a "reports" sub directory will be added
default_report_file_path = DEFAULT

[Machine]
#-------
# Information about the target SpiNNaker board or machine:
Expand All @@ -111,8 +75,6 @@ drift_report_ethernet_only = True
# timeScaleFactor: Change this to slow down the simulation time
# relative to real time.
# appID: Used by sark to identify the user's application.
machine_spec_file = None

spalloc_port = 22244
spalloc_user = None
spalloc_group = None
Expand All @@ -121,18 +83,9 @@ spalloc_use_proxy = True
# A comma seperated list of ip addresses to avoid.
spalloc_avoid_boards = None

# If using virtual_board both width and height must be set
virtual_board = False
MaxSDRAMSize = 134217728

simulation_time_step = 1000
time_scale_factor = None

# For the max virtual machine this can be reduced by
max_machine_core_reduction = 1

# Currently unused
number_of_boards = None

clear_routing_tables = False
clear_tags = False
Expand All @@ -144,6 +97,20 @@ disable_advanced_monitor_usage_for_data_in = False
reset_machine_on_startup = False
post_simulation_overrun_before_error = 5

# format is:
# bmp_names = <host>[/(<board-range>|board_id[,board_id]*)
# <board_range> = <board_id>-<board_id>
# where:
# <host> is the hostname or IP address of the BMP
# <board_range> is a range of boards that the BMP can speak to
# <board_id> is the ID of a single board in a frame
# Note this no longer supports multiple host nor cabinet or frame
bmp_names = None

auto_detect_bmp = False

# Note: if json_path is set all other configs for virtual boards are ignored
json_path = None

[Mapping]
placer = ApplicationPlacer
Expand All @@ -158,58 +125,17 @@ virtual_compressor = PairCompressor
# If True will read compressed routing tables and check them
run_compression_checker = True

router_table_compression_with_bit_field_use_time_cutoff = True
router_table_compression_with_bit_field_iteration_time = 1000
router_table_compression_with_bit_field_pre_alloced_sdram = 10000
router_table_compression_with_bit_field_acceptance_threshold = 0
router_table_compression_with_bit_field_retry_count = None

# format is <path1>,<path2>
extra_xmls_paths = None

[Simulation]

# performance controller to ensure only so many packets from a given
# app vertex happen at any given time (aka how many machine vertices
# from this app vertex can fire at same time)
app_machine_quantity = 25

# performance controller for how long to wait in-between cores firing. Used
# as a throttle to handle slow core processing. Only one of the following
# can be not None, though if both are, this will be computed:
# time_between_cores unit = microseconds
time_between_cores = None
# or clock_cycles_between_cores unit = clock cycles
clock_cycles_between_cores = None

# performance controller for how much of the time step to use for sending.
# Only one of the following can be not None:
fraction_of_time_spike_sending = 0.8
clock_cycles_sending = None

# performance controller for how much of the time step to use for before the
# TDMA. Only one of the following can be not None:
fraction_of_time_before_sending = None
clock_cycles_before_sending = 600

# performance controller for how much of the time step to use for spreading
# application vertices. Only one of the following can be not None:
fraction_of_time_for_offset = None
clock_cycles_for_offset = 1000


[Buffers]
use_auto_pause_and_resume = True
chip_power_monitor_buffer = 1048576
store_buffer_data_in_file = True
#chip_power_monitor_buffer = 1048576
#store_buffer_data_in_file = True
minimum_auto_time_steps = 1000

[Mode]
# mode = Production or Debug
# In Debug mode all report Boolean config values are automitcally overwritten to True

mode = Production
violate_1ms_wall_clock_restriction = False

[Database]
create_database = None
Expand Down
2 changes: 1 addition & 1 deletion spinn_front_end_common/interface/spinnaker.cfg.template
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ spalloc_group = None

# If using virtual_board both width and height must be set
virtual_board = False
# Allowed values pairs are (2,2) (8,8) (n*12,m*12) and (n*12+4, m*12+4)
# Allowed values pairs are (1,1) (2,2) (8,8) (n*12,m*12) and (n*12+4, m*12+4)
width = None
height = None

Expand Down
3 changes: 1 addition & 2 deletions unittests/test_cfg_checker.py
Original file line number Diff line number Diff line change
Expand Up @@ -30,5 +30,4 @@ def test_cfg_checker(self):
fec_dir = spinn_front_end_common.__path__[0]
local = os.path.join(parent, "fec_local_tests")
fec_it = os.path.join(parent, "fec_integration_tests")
run_config_checks(directories=[
fec_dir, local, fec_it, unittests])
run_config_checks(directories=[fec_dir, local, fec_it, unittests])

0 comments on commit 3d5bda6

Please sign in to comment.