def context(): """ Fixture that produces an MPI sensitive `arbor.context` """ args = [arbor.proc_allocation()] if _mpi_enabled: if not arbor.mpi_is_initialized(): print("Context fixture initializing mpi", flush=True) arbor.mpi_init() atexit.register(_finalize_mpi) if _mpi4py_enabled: from mpi4py.MPI import COMM_WORLD as comm else: comm = arbor.mpi_comm() args.append(comm) return arbor.context(*args)
def run(): v = options.parse_arguments().verbosity if not arb.mpi_is_initialized(): arb.mpi_init() comm = arb.mpi_comm() alloc = arb.proc_allocation() ctx = arb.context(alloc, comm) rank = ctx.rank if rank == 0: runner = unittest.TextTestRunner(verbosity=v) else: sys.stdout = open(os.devnull, 'w') runner = unittest.TextTestRunner(stream=sys.stdout) runner.run(suite()) if not arb.mpi_is_finalized(): arb.mpi_finalize()
return [] # (10) Place a probe at the root of each cell. def probes(self, gid): return [arbor.cable_probe_membrane_voltage('"root"')] def global_properties(self, kind): return self.props # (11) Instantiate recipe ncells = 50 recipe = ring_recipe(ncells) # (12) Create an MPI communicator, and use it to create a hardware context arbor.mpi_init() comm = arbor.mpi_comm() print(comm) context = arbor.context(mpi=comm) print(context) # (13) Create a default domain decomposition and simulation decomp = arbor.partition_load_balance(recipe, context) sim = arbor.simulation(recipe, decomp, context) # (14) Set spike generators to record sim.record(arbor.spike_recording.all) # (15) Attach a sampler to the voltage probe on cell 0. Sample rate of 1 sample every ms. # Sampling period increased w.r.t network_ring.py to reduce amount of data handles = [
def setUpClass(self): self.local_mpi = False if not arb.mpi_is_initialized(): arb.mpi_init() self.local_mpi = True
suites = [] for test_module in test_modules: test_module_suite = test_module.suite() suites.append(test_module_suite) suite = unittest.TestSuite(suites) return suite if __name__ == "__main__": v = options.parse_arguments().verbosity if not arb.mpi_is_initialized(): print(" Runner initializing mpi") arb.mpi_init() if mpi4py_enabled: comm = arb.mpi_comm(mpi.COMM_WORLD) elif mpi_enabled: comm = arb.mpi_comm() alloc = arb.proc_allocation() ctx = arb.context(alloc, comm) rank = ctx.rank if rank == 0: runner = unittest.TextTestRunner(verbosity=v) else: sys.stdout = open(os.devnull, 'w') runner = unittest.TextTestRunner(stream=sys.stdout)