class Main(): def __init__(self, numproc): self.numproc = numproc def simulate(self, process): # parallel processing on each setting value self.pid = os.getpid() self.progress_co = 0 self.nr = Neuron(**self.parm[process + self.multiproc_co]) self.nr.parm_dict = self.parm[process + self.multiproc_co] for i in range(0, self.nr.allsteps - 1): if (self.nr.curstep * self.nr.dt) > 200: for j in range(self.nr.numneu): self.nr.cnct[j, j + 1] = 1.0 self.nr.cnct[j + 1, j] = 1.0 pass self.nr.propagation() if self.progress_co % 1000 == 0: logging.warning('process id : %d : %4d steps', self.pid, self.progress_co) self.progress_co += 1 return self.nr def form_parm(self): self.parm = [] self.multiproc_co = 0 self.parm_counter = 0 """ for i, j, k, l in itertools.product(range(12), range(1), range(1), range(1)): self.parm.append({}) self.parm[self.parm_counter] = {"numneu": +10, "Syncp": 4, "Iext": round(i*0.1+1.5, 1)} self.parm_counter += 1 """ # i * j * k * l = 6n!! for i, j, k, l in itertools.product(range(12), range(6), range(1), range(1)): self.parm.append({}) self.parm[self.parm_counter] = { "numneu": 20, "Syncp": 5, "Iext_amp": 20 + 10 * j, "Iext_width": 10, "Iext_duty": 0, "Iext_num": 1000, "gcmp": 0.03 * i } self.parm_counter += 1 self.cycle_multiproc = int(self.parm_counter / 6)
class Main(): def __init__(self, numproc): self.numproc = numproc def simulate(self, process): # parallel processing on each setting value self.pid = os.getpid() self.progress_co = 0 self.nr = Neuron(**self.parm[process+self.multiproc_co]) self.nr.parm_dict = self.parm[process+self.multiproc_co] for i in range(0, self.nr.allsteps-1): self.nr.propagation() if self.progress_co % 100000 == 0: logging.warning('process id : %d : %4d steps', self.pid, self.progress_co) self.progress_co += 1 return self.nr def form_parm(self): self.parm = [] self.cycle_multiproc = int(6 / 6) self.multiproc_co = 0 self.parm_counter = 0 """ for i, j, k, l in itertools.product(range(12), range(1), range(1), range(1)): self.parm.append({}) self.parm[self.parm_counter] = {"numneu": 10, "Syncp": 4, "Iext": round(i*0.1+1.5, 1)} self.parm_counter += 1 """ for i, j, k, l in itertools.product(range(4), range(12), range(1), range(1)): self.parm.append({}) self.parm[self.parm_counter] = {"numneu": 1, "b": 3.3, "r":0.01, "xr":-3, "Syncp": 4, "syn_delay": 10, "noise":2, "alpha": round(0.3+i*0.1, 1), "D": round(1+2*j, 1)} self.parm_counter += 1
class Main(): def __init__(self, numproc): self.numproc = numproc def simulate(self, process): # parallel processing on each setting value self.pid = os.getpid() self.progress_co = 0 self.nr = Neuron(**self.parm[process + self.multiproc_co]) self.nr.parm_dict = self.parm[process + self.multiproc_co] for i in range(0, self.nr.allsteps - 1): """ if (self.nr.curstep * self.nr.dt) > 200: for j in range(19): self.nr.cnct[j, j+1] = 1.0 self.nr.cnct[j+1, j] = 1.0 pass """ self.nr.propagation() if self.progress_co % 1000 == 0: logging.warning('process id : %d : %4d steps', self.pid, self.progress_co) self.progress_co += 1 return self.nr def form_parm(self): self.parm = [] self.multiproc_co = 0 self.parm_counter = 0 """ for i, j, k, l in itertools.product(range(12), range(1), range(1), range(1)): self.parm.append({}) self.parm[self.parm_counter] = {"numneu": +10, "Syncp": 4, "Iext": round(i*0.1+1.5, 1)} self.parm_counter += 1 """ # i * j * k * l = 6n!! for i, j, k, l in itertools.product(range(8), range(12), range(1), range(1)): self.parm.append({}) self.parm[self.parm_counter] = { "numneu": 1, "b": 3.3, "r": 0.01, "xr": -3, "Syncp": 4, "syn_delay": 10, "noise": 2, "alpha": 0.5, "D": round(1 + 2 * j, 1), "Pmax": round(1 + i, 1) } """ "noise": 2, "alpha": round(0.1+0.2*i, 1), "D": round(0.5+j, 1)} """ self.parm_counter += 1 self.cycle_multiproc = int(self.parm_counter / 6)
class Main(): def plot(self, process): #parallel processing on each setting value if process == 0: self.pid = os.getpid() self.progress_co = 0 self.nr = Neuron(**palm1) for i in range(0, self.nr.allsteps - 1): self.nr.propagation() if self.progress_co % 100000 == 0: logging.warning('process id : %d : %4d steps', self.pid, self.progress_co) self.progress_co += 1 return self.nr elif process == 1: self.pid = os.getpid() self.progress_co = 0 self.nr = Neuron(**palm2) for i in range(0, self.nr.allsteps - 1): self.nr.propagation() if self.progress_co % 100000 == 0: logging.warning('process id : %d : %d steps', self.pid, self.progress_co) self.progress_co += 1 return self.nr elif process == 2: self.pid = os.getpid() self.progress_co = 0 self.nr = Neuron(**palm3) for i in range(0, self.nr.allsteps - 1): self.nr.propagation() if self.progress_co % 100000 == 0: logging.warning('process id : %d : %d steps', self.pid, self.progress_co) self.progress_co += 1 return self.nr elif process == 3: self.pid = os.getpid() self.progress_co = 0 self.nr = Neuron(**palm4) for i in range(0, self.nr.allsteps - 1): self.nr.propagation() if self.progress_co % 100000 == 0: logging.warning('process id : %d : %d steps', self.pid, self.progress_co) self.progress_co += 1 return self.nr elif process == 4: self.pid = os.getpid() self.progress_co = 0 self.nr = Neuron(**palm5) for i in range(0, self.nr.allsteps - 1): self.nr.propagation() if self.progress_co % 100000 == 0: logging.warning('process id : %d : %d steps', self.pid, self.progress_co) self.progress_co += 1 return self.nr elif process == 5: self.pid = os.getpid() self.progress_co = 0 self.nr = Neuron(**palm6) for i in range(0, self.nr.allsteps - 1): self.nr.propagation() if self.progress_co % 100000 == 0: logging.warning('process id : %d : %d steps', self.pid, self.progress_co) self.progress_co += 1 return self.nr else: pass