def __init__(self, rank, config, send_interface: StimDeciderMPISendInterface, ripple_n_above_thresh=sys.maxsize, lockout_time=0): super().__init__(rank=rank, local_rec_manager=binary_record.RemoteBinaryRecordsManager(manager_label='state', local_rank=rank, manager_rank= config['rank']['supervisor']), send_interface=send_interface, rec_ids=[realtime_base.RecordIDs.STIM_STATE, realtime_base.RecordIDs.STIM_LOCKOUT], rec_labels=[['timestamp', 'elec_grp_id', 'threshold_state'], ['timestamp', 'lockout_num', 'lockout_state']], rec_formats=['Iii', 'Iii']) self.rank = rank self._send_interface = send_interface self._ripple_n_above_thresh = ripple_n_above_thresh self._lockout_time = lockout_time self._ripple_thresh_states = {} self._enabled = False self._last_lockout_timestamp = 0 self._lockout_count = 0 self._in_lockout = False
def __init__(self, comm: MPI.Comm, rank, config): super().__init__(comm, rank, config) self.local_rec_manager = binary_record.RemoteBinaryRecordsManager(manager_label='state', local_rank=rank, manager_rank=config['rank']['supervisor']) self.mpi_send = RippleMPISendInterface(comm, rank, config) if self.config['datasource'] == 'simulator': data_interface = simulator_process.SimulatorRemoteReceiver(comm=self.comm, rank=self.rank, config=self.config, datatype=datatypes.Datatypes.LFP) self.rip_man = RippleManager(rank=rank, local_rec_manager=self.local_rec_manager, send_interface=self.mpi_send, data_interface=data_interface) self.mpi_recv = RippleMPIRecvInterface(self.comm, self.rank, self.config, self.rip_man) else: raise realtime_base.DataSourceError("No valid data source selected") self.terminate = False # First Barrier to finish setting up nodes self.class_log.debug("First Barrier") self.comm.Barrier()
def __init__(self, comm: MPI.Comm, rank, config): super(DecoderProcess, self).__init__(comm=comm, rank=rank, config=config) self.local_rec_manager = binary_record.RemoteBinaryRecordsManager(manager_label='state', local_rank=rank, manager_rank=config['rank']['supervisor']) self.terminate = False self.mpi_send = DecoderMPISendInterface(comm=comm, rank=rank, config=config) self.spike_decode_interface = SpikeDecodeRecvInterface(comm=comm, rank=rank, config=config) self.pos_interface = simulator_process.SimulatorRemoteReceiver(comm=self.comm, rank=self.rank, config=self.config, datatype=datatypes.Datatypes.LINEAR_POSITION) if config['decoder'] == 'bayesian_decoder': self.dec_man = BayesianDecodeManager(rank=rank, config=config, local_rec_manager=self.local_rec_manager, send_interface=self.mpi_send, spike_decode_interface=self.spike_decode_interface) elif config['decoder'] == 'pp_decoder': self.dec_man = PPDecodeManager(rank=rank, config=config, local_rec_manager=self.local_rec_manager, send_interface=self.mpi_send, spike_decode_interface=self.spike_decode_interface, pos_interface=self.pos_interface) self.mpi_recv = DecoderRecvInterface(comm=comm, rank=rank, config=config, decode_manager=self.dec_man) # First Barrier to finish setting up nodes self.class_log.debug("First Barrier") self.comm.Barrier()
def __init__(self, comm: MPI.Comm, rank, config): super().__init__(comm=comm, rank=rank, config=config) self.terminate = False self.local_rec_manager = binary_record.RemoteBinaryRecordsManager(manager_label='state', local_rank=rank, manager_rank=config['rank']['supervisor']) self.mpi_send = SimulatorSendInterface(comm=comm, rank=rank, config=config) self.sim = Simulator(comm=comm, rank=rank, config=config, mpi_send=self.mpi_send, local_rec_manager=self.local_rec_manager) self.mpi_recv = SimulatorRecvInterface(comm=comm, rank=rank, config=config, simulator=self.sim)
def __init__(self, comm: MPI.Comm, rank, config): super().__init__(comm, rank, config) self.local_rec_manager = binary_record.RemoteBinaryRecordsManager(manager_label='state', local_rank=rank, manager_rank=config['rank']['supervisor']) self.mpi_send = EncoderMPISendInterface(comm=comm, rank=rank, config=config) if self.config['datasource'] == 'simulator': spike_interface = simulator_process.SimulatorRemoteReceiver(comm=self.comm, rank=self.rank, config=self.config, datatype=datatypes.Datatypes.SPIKES) pos_interface = simulator_process.SimulatorRemoteReceiver(comm=self.comm, rank=self.rank, config=self.config, datatype=datatypes.Datatypes.LINEAR_POSITION) elif self.config['datasource'] == 'trodes': spike_interface = spykshrk.realtime.trodes.TrodesDataReceiver(comm=self.comm, rank=self.rank, config=self.config, datatype=datatypes.Datatypes.SPIKES) pos_interface = spykshrk.realtime.trodes.TrodesDataReceiver(comm=self.comm, rank=self.rank, config=self.config, datatype=datatypes.Datatypes.LINEAR_POSITION) self.enc_man = RStarEncoderManager(rank=rank, config=config, local_rec_manager=self.local_rec_manager, send_interface=self.mpi_send, spike_interface=spike_interface, pos_interface=pos_interface) self.mpi_recv = EncoderMPIRecvInterface(comm=comm, rank=rank, config=config, encoder_manager=self.enc_man) self.terminate = False # config['trodes_network']['networkobject'].registerTerminateCallback(self.trigger_termination) # First Barrier to finish setting up nodes self.class_log.debug("First Barrier") self.comm.Barrier()