def _create_overloaded_functions(spinnaker_simulator): """ Creates functions that the main PyNN interface supports\ (given from PyNN) :param spinnaker_simulator: the simulator object we use underneath :rtype: None """ # overload the failed ones with now valid ones, now that we're in setup # phase. __pynn["run"], __pynn["run_until"] = pynn_common.build_run( spinnaker_simulator) __pynn["get_current_time"], __pynn["get_time_step"], \ __pynn["get_min_delay"], __pynn["get_max_delay"], \ __pynn["num_processes"], __pynn["rank"] = \ pynn_common.build_state_queries(spinnaker_simulator) __pynn["reset"] = pynn_common.build_reset(spinnaker_simulator) __pynn["create"] = pynn_common.build_create(Population) __pynn["connect"] = pynn_common.build_connect(Projection, FixedProbabilityConnector, StaticSynapse) __pynn["record"] = pynn_common.build_record(spinnaker_simulator)
def end(compatible_output=True): """Do any necessary cleaning up before exiting.""" for (population, variables, filename) in simulator.state.write_on_end: io = get_io(filename) population.write_data(io, variables) simulator.state.write_on_end = [] # should have common implementation of end() run, run_until = common.build_run(simulator) run_for = run reset = common.build_reset(simulator) initialize = common.initialize get_current_time, get_time_step, get_min_delay, get_max_delay, \ num_processes, rank = common.build_state_queries(simulator) create = common.build_create(Population) connect = common.build_connect(Projection, FixedProbabilityConnector, StaticSynapse) record = common.build_record(simulator) record_v = lambda source, filename: record(['v'], source, filename) record_gsyn = lambda source, filename: record(['gsyn_exc', 'gsyn_inh'], source, filename)
simulator.recorder_list = [] shutil.rmtree(temporary_directory, ignore_errors=True) moose.PyMooseBase.endSimulation() run = common.build_run(simulator) reset = common.build_reset(simulator) initialize = common.initialize # ============================================================================== # Functions returning information about the simulation state # ============================================================================== get_current_time, get_time_step, get_min_delay, get_max_delay, \ num_processes, rank = common.build_state_queries(simulator) # ============================================================================== # High-level API for creating, connecting and recording from populations of # neurons. # ============================================================================== class Assembly(common.Assembly): _simulator = simulator class PopulationView(common.PopulationView): _simulator = simulator _assembly_class = Assembly def _get_view(self, selector, label=None):
def test_rank(): simulator = MockSimulator() get_current_time, get_time_step, get_min_delay, get_max_delay, num_processes, rank = common.build_state_queries(simulator) rank() assert_equal(simulator.state.accesses, ['mpi_rank'])
def test_num_processes(): simulator = MockSimulator() get_current_time, get_time_step, get_min_delay, get_max_delay, num_processes, rank = common.build_state_queries( simulator) num_processes() assert_equal(simulator.state.accesses, ['num_processes'])
# simulator.state.finalize() run, run_until = common.build_run(simulator) run_for = run reset = common.build_reset(simulator) initialize = common.initialize # ============================================================================== # Functions returning information about the simulation state # ============================================================================== get_current_time, get_time_step, get_min_delay, get_max_delay, num_processes, rank = common.build_state_queries( simulator ) # ============================================================================== # Low-level API for creating, connecting and recording from individual neurons # ============================================================================== create = common.build_create(Population) connect = common.build_connect(Projection, FixedProbabilityConnector, StaticSynapse) set = common.set record = common.build_record(simulator)