hnn_core.parallel_backends.MPIBackend¶
- class hnn_core.parallel_backends.MPIBackend(n_procs=None, mpi_cmd='mpiexec')[source]¶
- The MPIBackend class. - Parameters
- n_procsint | None
- The number of MPI processes requested by the user. If None, then will attempt to detect number of cores (including hyperthreads) and start parallel simulation over all of them. 
- mpi_cmdstr
- The name of the mpi launcher executable. Will use ‘mpiexec’ (openmpi) by default. 
 
- Attributes
- n_procsint
- The number of processes MPI will actually use (spread over cores). If 1 is specified or mpi4py could not be loaded, the simulation will be run with the JoblibBackend 
- mpi_cmdlist of str
- The mpi command with number of procs and options to be passed to Popen 
- expected_data_lengthint
- Used to check consistency between data that was sent and what MPIBackend received. 
- proc_queuethreading.Queue
- A Queue object to hold process handles from Popen in a thread-safe way. There will be a valid process handle present the queue when a MPI åsimulation is running. 
 
 - Methods - simulate(net, tstop, dt, n_trials[, postproc])- Simulate the HNN model in parallel on all cores - Terminate running simulation on this MPIBackend - simulate(net, tstop, dt, n_trials, postproc=False)[source]¶
- Simulate the HNN model in parallel on all cores - Parameters
- netNetwork object
- The Network object specifying how cells are connected. 
- tstopfloat
- The simulation stop time (ms). 
- dtfloat
- The integration time step of h.CVode (ms) 
- n_trialsint
- Number of trials to simulate. 
- postproc: bool
- If False, no postprocessing applied to the dipole 
 
- Returns
- dpl: list of Dipole
- The Dipole results from each simulation trial