NEURON
netpar.cpp File Reference
#include "utils/profile/profiler_interface.h"
#include <../../nrnconf.h>
#include <InterViews/resource.h>
#include <math.h>
#include "nrncvode.h"
#include "nrniv_mf.h"
#include <nrnmpi.h>
#include <nrnoc2iv.h>
#include <stdio.h>
#include <stdlib.h>
#include <netpar.h>
#include <unordered_map>
#include <bbs.h>
#include <errno.h>
#include <netcon.h>
#include <cvodeobj.h>
#include <netcvode.h>
#include "ivocvect.h"
#include <atomic>
#include <vector>
#include "nrncore_write.h"

Go to the source code of this file.

Macros

#define MD   2147483648.
 
#define TBUFSIZE   0
 
#define TBUF
 

Typedefs

using Gid2PreSyn = std::unordered_map< int, PreSyn * >
 
typedef void(* PFIO) (int, Object *)
 

Functions

static void alloc_space ()
 
void nrn_pending_selfqueue (double, NrnThread *)
 
Objectnrn_sec2cell (Section *)
 
void ncs2nrn_integrate (double tstop)
 
int nrnmpi_spike_compress (int nspike, bool gid_compress, int xchng_meth)
 
void nrn_cleanup_presyn (PreSyn *)
 
int nrn_set_timeout (int)
 
void nrnmpi_gid_clear (int)
 
void nrn_partrans_clear ()
 
void nrn_spike_exchange_init ()
 
double nrn_multisend_receive_time (int)
 
void nrn_gidout_iter (PFIO)
 
Objectnrn_gid2obj (int)
 
PreSynnrn_gid2presyn (int)
 
int nrn_gid_exists (int)
 
int nrnthread_all_spike_vectors_return (std::vector< double > &spiketvec, std::vector< int > &spikegidvec)
 NEURON callback used from CORENEURON to transfer all spike vectors after simulation. More...
 
void nrnmpi_multisplit_clear ()
 
static double set_mindelay (double maxdelay)
 
double nrn_usable_mindelay ()
 
Symbolnrn_netcon_sym ()
 
Gid2PreSynnrn_gid2out ()
 
static int nrn_need_npe ()
 
static void calc_actual_mindelay ()
 
void nrn_spike_exchange (NrnThread *)
 
void nrn_fake_fire (int gid, double spiketime, int fake_out)
 
static Objectgid2obj_ (int gid)
 
PreSynnrn_gid2outputpresyn (int gid)
 
static int weightcnt (NetCon *nc)
 
size_t nrncore_netpar_bytes ()
 

Variables

static int n_multisend_interval
 
static Symbolnetcon_sym_
 
static Gid2PreSyn gid2out_
 
static Gid2PreSyn gid2in_
 
static IvocVectall_spiketvec = NULL
 
static IvocVectall_spikegidvec = NULL
 
static double t_exchange_
 
static double dt1_
 
static int localgid_size_
 
static int ag_send_size_
 
static int ag_send_nspike_
 
static int ovfl_capacity_
 
static int ovfl_
 
static unsigned char * spfixout_
 
static unsigned char * spfixin_
 
static unsigned char * spfixin_ovfl_
 
static int nout_
 
static int * nin_
 
static NRNMPI_Spikespikeout_
 
static NRNMPI_Spikespikein_
 
static int icapacity_
 
NetCvodenet_cvode_instance
 
double t
 
double dt
 
int nrn_use_selfqueue_
 
double nrnmpi_step_wait_
 
static int active_
 
static double usable_mindelay_
 
static double min_interprocessor_delay_
 
static double mindelay_
 
static double last_maxstep_arg_
 
static NetParEventnpe_
 
static int n_npe_
 
static int gid_donot_remove = 0
 
static int timeout_ = 20
 
int * nrn_prop_param_size_
 
short * nrn_is_artificial_
 

Macro Definition Documentation

◆ MD

#define MD   2147483648.

Definition at line 16 of file netpar.cpp.

◆ TBUF

#define TBUF

Definition at line 460 of file netpar.cpp.

◆ TBUFSIZE

#define TBUFSIZE   0

Definition at line 459 of file netpar.cpp.

Typedef Documentation

◆ Gid2PreSyn

using Gid2PreSyn = std::unordered_map<int, PreSyn*>

Definition at line 21 of file netpar.cpp.

◆ PFIO

typedef void(* PFIO) (int, Object *)

Definition at line 74 of file netpar.cpp.

Function Documentation

◆ alloc_space()

static void alloc_space ( )
static

Definition at line 925 of file netpar.cpp.

◆ calc_actual_mindelay()

static void calc_actual_mindelay ( )
static

Definition at line 444 of file netpar.cpp.

◆ gid2obj_()

static Object* gid2obj_ ( int  gid)
static

Definition at line 1150 of file netpar.cpp.

◆ ncs2nrn_integrate()

void ncs2nrn_integrate ( double  tstop)

Definition at line 3700 of file netcvode.cpp.

◆ nrn_cleanup_presyn()

void nrn_cleanup_presyn ( PreSyn ps)

Definition at line 970 of file netpar.cpp.

◆ nrn_fake_fire()

void nrn_fake_fire ( int  gid,
double  spiketime,
int  fake_out 
)

Definition at line 900 of file netpar.cpp.

◆ nrn_gid2obj()

Object* nrn_gid2obj ( int  gid)

Definition at line 1564 of file netpar.cpp.

◆ nrn_gid2out()

Gid2PreSyn& nrn_gid2out ( )

Definition at line 218 of file netpar.cpp.

◆ nrn_gid2outputpresyn()

PreSyn* nrn_gid2outputpresyn ( int  gid)

Definition at line 1556 of file netpar.cpp.

◆ nrn_gid2presyn()

PreSyn* nrn_gid2presyn ( int  gid)

Definition at line 1568 of file netpar.cpp.

◆ nrn_gid_exists()

int nrn_gid_exists ( int  gid)

Definition at line 1039 of file netpar.cpp.

◆ nrn_gidout_iter()

void nrn_gidout_iter ( PFIO  callback)

Definition at line 1574 of file netpar.cpp.

◆ nrn_multisend_receive_time()

double nrn_multisend_receive_time ( int  type)

Definition at line 92 of file netpar.cpp.

◆ nrn_need_npe()

static int nrn_need_npe ( )
static

Definition at line 418 of file netpar.cpp.

◆ nrn_netcon_sym()

Symbol* nrn_netcon_sym ( )

Definition at line 215 of file netpar.cpp.

◆ nrn_partrans_clear()

void nrn_partrans_clear ( )

Definition at line 768 of file partrans.cpp.

◆ nrn_pending_selfqueue()

void nrn_pending_selfqueue ( double  tt,
NrnThread nt 
)

Definition at line 3759 of file netcvode.cpp.

◆ nrn_sec2cell()

Object* nrn_sec2cell ( Section sec)

Definition at line 252 of file cabcode.cpp.

◆ nrn_set_timeout()

int nrn_set_timeout ( int  timeout)

Definition at line 1244 of file netpar.cpp.

◆ nrn_spike_exchange()

void nrn_spike_exchange ( NrnThread nt)

Definition at line 552 of file netpar.cpp.

◆ nrn_spike_exchange_init()

void nrn_spike_exchange_init ( void  )

Definition at line 463 of file netpar.cpp.

◆ nrn_usable_mindelay()

double nrn_usable_mindelay ( )

Definition at line 212 of file netpar.cpp.

◆ nrncore_netpar_bytes()

size_t nrncore_netpar_bytes ( )

Definition at line 1593 of file netpar.cpp.

◆ nrnmpi_gid_clear()

void nrnmpi_gid_clear ( int  arg)

Definition at line 988 of file netpar.cpp.

◆ nrnmpi_multisplit_clear()

void nrnmpi_multisplit_clear ( )

Definition at line 499 of file multisplit.cpp.

◆ nrnmpi_spike_compress()

int nrnmpi_spike_compress ( int  nspike,
bool  gid_compress,
int  xchng_meth 
)

Definition at line 1483 of file netpar.cpp.

◆ nrnthread_all_spike_vectors_return()

int nrnthread_all_spike_vectors_return ( std::vector< double > &  spiketvec,
std::vector< int > &  spikegidvec 
)

NEURON callback used from CORENEURON to transfer all spike vectors after simulation.

Parameters
spiketvec- vector of spikes
spikegidvec- vector of gids
Returns
1 if CORENEURON shall drop writing out.dat; 0 otherwise

Definition at line 1320 of file netpar.cpp.

◆ set_mindelay()

static double set_mindelay ( double  maxdelay)
static

Definition at line 1352 of file netpar.cpp.

◆ weightcnt()

static int weightcnt ( NetCon nc)
static

Definition at line 1588 of file netpar.cpp.

Variable Documentation

◆ active_

int active_
static

Definition at line 204 of file netpar.cpp.

◆ ag_send_nspike_

int ag_send_nspike_
static

Definition at line 48 of file netpar.cpp.

◆ ag_send_size_

int ag_send_size_
static

Definition at line 47 of file netpar.cpp.

◆ all_spikegidvec

IvocVect* all_spikegidvec = NULL
static

Definition at line 43 of file netpar.cpp.

◆ all_spiketvec

IvocVect* all_spiketvec = NULL
static

Definition at line 42 of file netpar.cpp.

◆ dt

double dt

Definition at line 62 of file netpar.cpp.

◆ dt1_

double dt1_
static

Definition at line 45 of file netpar.cpp.

◆ gid2in_

Gid2PreSyn gid2in_
static

Definition at line 41 of file netpar.cpp.

◆ gid2out_

Gid2PreSyn gid2out_
static

Definition at line 40 of file netpar.cpp.

◆ gid_donot_remove

int gid_donot_remove = 0
static

Definition at line 968 of file netpar.cpp.

◆ icapacity_

int icapacity_
static

Definition at line 58 of file netpar.cpp.

◆ last_maxstep_arg_

double last_maxstep_arg_
static

Definition at line 208 of file netpar.cpp.

◆ localgid_size_

int localgid_size_
static

Definition at line 46 of file netpar.cpp.

◆ min_interprocessor_delay_

double min_interprocessor_delay_
static

Definition at line 206 of file netpar.cpp.

◆ mindelay_

double mindelay_
static

Definition at line 207 of file netpar.cpp.

◆ n_multisend_interval

int n_multisend_interval
static

Definition at line 32 of file netpar.cpp.

◆ n_npe_

int n_npe_
static

Definition at line 210 of file netpar.cpp.

◆ net_cvode_instance

NetCvode* net_cvode_instance
extern

Definition at line 26 of file cvodestb.cpp.

◆ netcon_sym_

Symbol* netcon_sym_
static

Definition at line 39 of file netpar.cpp.

◆ nin_

int* nin_
static

Definition at line 55 of file netpar.cpp.

◆ nout_

int nout_
static

Definition at line 54 of file netpar.cpp.

◆ npe_

NetParEvent* npe_
static

Definition at line 209 of file netpar.cpp.

◆ nrn_is_artificial_

short* nrn_is_artificial_
extern

Definition at line 214 of file init.cpp.

◆ nrn_prop_param_size_

int* nrn_prop_param_size_
extern

Definition at line 162 of file init.cpp.

◆ nrn_use_selfqueue_

int nrn_use_selfqueue_
extern

Definition at line 77 of file netcvode.cpp.

◆ nrnmpi_step_wait_

double nrnmpi_step_wait_
extern

Definition at line 34 of file ocbbs.cpp.

◆ ovfl_

int ovfl_
static

Definition at line 50 of file netpar.cpp.

◆ ovfl_capacity_

int ovfl_capacity_
static

Definition at line 49 of file netpar.cpp.

◆ spfixin_

unsigned char* spfixin_
static

Definition at line 52 of file netpar.cpp.

◆ spfixin_ovfl_

unsigned char* spfixin_ovfl_
static

Definition at line 53 of file netpar.cpp.

◆ spfixout_

unsigned char* spfixout_
static

Definition at line 51 of file netpar.cpp.

◆ spikein_

NRNMPI_Spike* spikein_
static

Definition at line 57 of file netpar.cpp.

◆ spikeout_

NRNMPI_Spike* spikeout_
static

Definition at line 56 of file netpar.cpp.

◆ t

double t
extern

Definition at line 57 of file cvodeobj.cpp.

◆ t_exchange_

double t_exchange_
static

Definition at line 44 of file netpar.cpp.

◆ timeout_

int timeout_ = 20
static

Definition at line 1243 of file netpar.cpp.

◆ usable_mindelay_

double usable_mindelay_
static

Definition at line 205 of file netpar.cpp.