---------------------------------------------------------------------------
SpinnmanIOException Traceback (most recent call last)
Input In [5], in <cell line: 67>()
62 config.write(configfile)
64 # RUN SNN TOOLBOX #
65 ###################
---> 67 main(config_filepath)
File ~/.local/lib/python3.8/site-packages/snntoolbox/bin/run.py:31, in main(filepath)
29 if filepath
is not None:
30 config = update_setup(filepath)
---> 31 run_pipeline(config)
32 return
34 parser = argparse.ArgumentParser(
35 description='Run SNN toolbox to convert an analog neural network into '
36 'a spiking neural network, and optionally simulate it.')
File ~/.local/lib/python3.8/site-packages/snntoolbox/bin/utils.py:145, in run_pipeline(config, queue)
142 return snn.run(**test_set)
144 # Simulate network
--> 145 results = run(spiking_model, **testset)
147 # Clean up
148 spiking_model.end_sim()
File ~/.local/lib/python3.8/site-packages/snntoolbox/bin/utils.py:220, in run_parameter_sweep.<locals>.decorator.<locals>.wrapper(snn, **testset)
216 if len(param_values) > 1:
217 print("
\nCurrent value of parameter to sweep: " +
218 "
{} =
{:.2f}\n".format(param_name, p))
--> 220 results.append(run_single(snn, **testset))
222 # Plot and return results of parameter sweep.
223 try:
File ~/.local/lib/python3.8/site-packages/snntoolbox/bin/utils.py:142, in run_pipeline.<locals>.run(snn, **test_set)
140 @run_parameter_sweep(config, queue)
141 def run(snn, **test_set):
--> 142
return snn.run(**test_set)
File ~/.local/lib/python3.8/site-packages/snntoolbox/simulation/utils.py:606, in AbstractSNN.run(self, x_test, y_test, dataflow, **kwargs)
603 # Main step: Run the network on a batch of samples for the duration
604 # of the simulation.
605 print("
\nStarting new simulation...
\n")
--> 606 output_b_l_t = self.simulate(**data_batch_kwargs)
608 # Halt if model is to be serialised only.
609 if self.config.getboolean('tools', 'serialise_only'):
File ~/.local/lib/python3.8/site-packages/snntoolbox/simulation/target_simulators/spiNNaker_target_sim.py:381, in SNN.simulate(self, **kwargs)
379 if self.config.getboolean('tools', 'serialise_only'):
380 sys.exit('finished after serialisation')
--> 381 self.sim.run(self._duration)
382 print("
\nCollecting results...")
383 output_b_l_t = self.get_recorded_vars(self.layers)
File ~/.local/lib/python3.8/site-packages/spynnaker8/__init__.py:703, in run(simtime, callbacks)
701 if not globals_variables.has_simulator():
702 raise ConfigurationException(FAILED_STATE_MSG)
--> 703
return __pynn["run"](simtime, callbacks=callbacks)
File ~/.local/lib/python3.8/site-packages/pyNN/common/control.py:111, in build_run.<locals>.run(simtime, callbacks)
96 def run(simtime, callbacks=
None):
97 """
98 Advance the simulation by `simtime` ms.
99
(...)
109 the initial conditions (time ``t = 0``), use the ``reset()`` function.
110 """
--> 111
return run_until(simulator.state.t + simtime, callbacks)
File ~/.local/lib/python3.8/site-packages/pyNN/common/control.py:93, in build_run.<locals>.run_until(time_point, callbacks)
90 callback_events.extend((callback(simulator.state.t), callback)
91 for callback
in active_callbacks)
92 else:
---> 93 simulator.state.run_until(time_point)
94 return simulator.state.t
File ~/.local/lib/python3.8/site-packages/spynnaker8/spinnaker.py:119, in SpiNNaker.run_until(self, tstop)
114 """ Run the simulation until the given simulation time.
115
116 :param tstop: when to run until in milliseconds
117 """
118 # Build data
--> 119 self._run_wait(tstop - self.t)
File ~/.local/lib/python3.8/site-packages/spynnaker8/spinnaker.py:150, in SpiNNaker._run_wait(self, duration_ms, sync_time)
143 def _run_wait(self, duration_ms, sync_time=0.0):
144 """ Run the simulation for a length of simulation time.
145
146 :param duration_ms: The run duration, in milliseconds
147 :type duration_ms: int or float
148 """
--> 150 super(SpiNNaker, self).run(duration_ms, sync_time)
File ~/.local/lib/python3.8/site-packages/spynnaker/pyNN/abstract_spinnaker_common.py:380, in AbstractSpiNNakerCommon.run(self, run_time, sync_time)
371 if (self.config.getboolean("Reports", "reports_enabled")
and
372 self.config.getboolean(
373 "Reports", "write_redundant_packet_count_report")
and
374 not self._use_virtual_board
and run_time
is not None and
375 not self._has_ran
and self._config.getboolean(
376 "Reports", "writeProvenanceData")):
377 self.extend_extra_post_run_algorithms(
378 ["RedundantPacketCountReport"])
--> 380 super().run(run_time, sync_time)
381 for projection
in self._projections:
382 projection._clear_cache()
File ~/.local/lib/python3.8/site-packages/spinn_front_end_common/interface/abstract_spinnaker_base.py:780, in AbstractSpinnakerBase.run(self, run_time, sync_time)
778 @overrides(SimulatorInterface.run)
779 def run(self, run_time, sync_time=0):
--> 780 self._run(run_time, sync_time)
File ~/.local/lib/python3.8/site-packages/spinn_front_end_common/interface/abstract_spinnaker_base.py:932, in AbstractSpinnakerBase._run(self, run_time, sync_time)
929 self._max_run_time_steps =
None
931 if self._machine
is None:
--> 932 self._get_machine(total_run_time, n_machine_time_steps)
933 self._do_mapping(run_time, total_run_time)
935 # Check if anything has per-timestep SDRAM usage
File ~/.local/lib/python3.8/site-packages/spinn_front_end_common/interface/abstract_spinnaker_base.py:1211, in AbstractSpinnakerBase._get_machine(self, total_run_time, n_machine_time_steps)
1208 # If we are using a directly connected machine, add the details to get
1209 # the machine and transceiver
1210 if self._hostname
is not None:
-> 1211 self._machine_by_hostname(n_machine_time_steps, total_run_time)
1213 elif self._use_virtual_board:
1214 self._machine_by_virtual(n_machine_time_steps, total_run_time)
File ~/.local/lib/python3.8/site-packages/spinn_front_end_common/interface/abstract_spinnaker_base.py:1267, in AbstractSpinnakerBase._machine_by_hostname(self, n_machine_time_steps, total_run_time)
1264 outputs.append("MemoryMachine")
1265 outputs.append("MemoryTransceiver")
-> 1267 executor = self._run_algorithms(
1268 inputs, algorithms, outputs, [], [], "machine_generation")
1269 self._machine = executor.get_item("MemoryMachine")
1270 self._txrx = executor.get_item("MemoryTransceiver")
File ~/.local/lib/python3.8/site-packages/spinn_front_end_common/interface/abstract_spinnaker_base.py:1195, in AbstractSpinnakerBase._run_algorithms(self, inputs, algorithms, outputs, tokens, required_tokens, provenance_name, optional_algorithms)
1192 except Exception as e3:
1193 logger.warning("problem when shutting down
{}".format(e3),
1194 exc_info=
True)
-> 1195
raise e
File ~/.local/lib/python3.8/site-packages/spinn_front_end_common/interface/abstract_spinnaker_base.py:1175, in AbstractSpinnakerBase._run_algorithms(self, inputs, algorithms, outputs, tokens, required_tokens, provenance_name, optional_algorithms)
1165 executor = PACMANAlgorithmExecutor(
1166 algorithms=algorithms, optional_algorithms=optional,
1167 inputs=inputs, tokens=tokens,
(...)
1171 provenance_name=provenance_name,
1172 provenance_path=self._pacman_executor_provenance_path)
1174 try:
-> 1175 executor.execute_mapping()
1176 self._pacman_provenance.extract_provenance(executor)
1177 return executor
File ~/.local/lib/python3.8/site-packages/pacman/executor/pacman_algorithm_executor.py:666, in PACMANAlgorithmExecutor.execute_mapping(self)
664 if self._do_direct_injection:
665 with injection_context(self._internal_type_mapping):
--> 666 self.__execute_mapping()
667 else:
668 self.__execute_mapping()
File ~/.local/lib/python3.8/site-packages/pacman/executor/pacman_algorithm_executor.py:682, in PACMANAlgorithmExecutor.__execute_mapping(self)
679 timer.start_timing()
681 # Execute the algorithm
--> 682 results = algorithm.call(self._internal_type_mapping)
684 if self._provenance_path:
685 self._report_full_provenance(algorithm, results)
File ~/.local/lib/python3.8/site-packages/pacman/executor/algorithm_classes/abstract_python_algorithm.py:77, in AbstractPythonAlgorithm.call(self, inputs)
74 method_inputs = self._get_inputs(inputs)
76 # Run the algorithm and get the results
---> 77 results = self.call_python(method_inputs)
79 if results
is not None and not isinstance(results, tuple):
80 results = (results,)
File ~/.local/lib/python3.8/site-packages/pacman/executor/algorithm_classes/python_class_algorithm.py:97, in PythonClassAlgorithm.call_python(self, inputs)
93 method = self._python_method
94 logger.error("Error when calling
{}.
{}.
{} with inputs
{}",
95 self._python_module, self._python_class, method,
96 inputs.keys())
---> 97
raise e
File ~/.local/lib/python3.8/site-packages/pacman/executor/algorithm_classes/python_class_algorithm.py:89, in PythonClassAlgorithm.call_python(self, inputs)
87 method = getattr(instance, self._python_method)
88 try:
---> 89
return method(**inputs)
90 except Exception as e:
91 method = "__call__"
File ~/.local/lib/python3.8/site-packages/spinn_front_end_common/interface/interface_functions/machine_generator.py:143, in MachineGenerator.__call__(self, hostname, bmp_details, downed_chips, downed_cores, downed_links, board_version, auto_detect_bmp, scamp_connection_data, boot_port_num, reset_machine_on_start_up, report_waiting_logs, max_sdram_size, repair_machine, ignore_bad_ethernets, default_report_directory)
139 if board_version
is None:
140 raise ConfigurationException(
141 "Please set a machine version number in the "
142 "corresponding configuration (cfg) file")
--> 143 txrx.ensure_board_is_ready()
144 txrx.discover_scamp_connections()
145 return txrx.get_machine_details(), txrx
File ~/.local/lib/python3.8/site-packages/spinnman/transceiver.py:981, in Transceiver.ensure_board_is_ready(self, number_of_boards, width, height, n_retries, extra_boot_values)
979 # verify that the version is the expected one for this transceiver
980 if version_info
is None:
--> 981
raise SpinnmanIOException(
982 "Failed to communicate with the machine")
983 if (
version_info.name != _SCAMP_NAME
or
984 not self.is_scamp_version_compabible(
985 version_info.version_number)):
986 raise SpinnmanIOException(
987 "The machine is currently booted with
{}"
988 "
{} which is incompatible with this transceiver, "
989 "required version is
{} {}".format(
990 version_info.name, version_info.version_number,
991 _SCAMP_NAME, _SCAMP_VERSION))
SpinnmanIOException: IO Error: Failed to communicate with the machine