def main(self): self._set_music_setup(music.Setup()) self._setup(self._music_setup) self._pre_run(self._music_setup) self._execute_pre_run_barrier() logger.info("Dropping to runtime with timestep {}...".format( self._time_step)) times = PyMusicNode.__runtime(self._music_setup, self._time_step, self._total_time) self._set_music_setup(None) self._run(times) self._post_run()
def main(): setup = music.Setup() def make_out_proxy(port_name): proxy = setup.publishContOutput(port_name) assert proxy.isConnected() assert proxy.width() > 0 buf = np.zeros(proxy.width()) proxy.map(buf, maxBuffered=1) return buf buf = make_out_proxy("out") def runtime(setup, timestep, stoptime): for t in itertools.takewhile(lambda t: t < stoptime, setup.runtime(timestep)): yield t for time in runtime(setup, timestep=0.001, stoptime=0.5): buf[:] = [time + float(i) for i, _ in enumerate(range(len(buf)))]
def initMUSIC(): global DEFAULT_TIMESTEP, timestep, setup, stoptime, runtime, tau, DEFAULT_TAU, state, state_hist, d, num_neurons, proj_hist setup = music.Setup() try: timestep = setup.config("music_timestep") except: timestep = DEFAULT_TIMESTEP try: tau = setup.config("tau") except: tau = DEFAULT_TAU stoptime = setup.config("stoptime") port_in = setup.publishEventInput("in") port_in.map(eventfunc, music.Index.GLOBAL, base=0, size=port_in.width(), maxBuffered=1) state = np.ones(port_in.width()) state_hist = {"states": [np.array(state)], "times": [0]} for i in range(100): state_hist['states'] = np.append(state_hist['states'], [state], axis = 0) state_hist['times'] = np.append(state_hist['times'], [0], axis = 0) proj = np.zeros(3) proj_hist = {"projs": [np.array(proj)], "times": [0]} d = DynamicUpdate() d.on_launch() num_neurons = port_in.width() comm.Barrier() runtime = music.Runtime(setup, timestep)
#!/usr/bin/env python import music import sys from itertools import takewhile setup = music.Setup() stoptime = setup.config("stoptime") timestep = setup.config("timestep") buf = setup.config("buffer") pickled = setup.config("pickled") != 0 errorAt = setup.config("errorAt") if errorAt < 0: errorAt = None comm = setup.comm rank = comm.Get_rank() size = comm.Get_size() def eventerr(d): if errorAt is None: return if d >= errorAt: raise RuntimeError("Hey") time = None def msgfunc(d, msg): eventerr(d) sys.stderr.write("Receive rank {}: {} ({}) at {}\n".format(
#!/usr/local/bin/nrniv -python import sys import music s = music.Setup(sys.argv) p = s.publishEventOutput("out") print p