示例#1
0
 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)))]
示例#3
0
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)
示例#4
0
#!/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(
示例#5
0
#!/usr/local/bin/nrniv -python

import sys
import music

s = music.Setup(sys.argv)
p = s.publishEventOutput("out")
print p