NEURON
bgpdma.cpp File Reference
#include <structpool.h>
#include "bgpdmasetup.cpp"

Go to the source code of this file.

Classes

struct  Phase2Buffer
 
class  BGP_ReceiveBuffer
 
class  BGP_DMASend
 
class  BGP_DMASend_Phase2
 

Macros

#define DCMFTICK   0
 
#define DCMFTIMEBASE   0
 
#define MAXNCONS   10
 
#define USE_RDTSCL   0
 
#define TBUFSIZE   0
 
#define TBUF
 
#define ENQUEUE   2
 
#define PHASE2BUFFER_SIZE   2048
 
#define PHASE2BUFFER_MASK   (PHASE2BUFFER_SIZE - 1)
 
#define BGP_RECEIVEBUFFER_SIZE   10000
 
#define NTARGET_HOSTS_PHASE1   ntarget_hosts_phase1_
 
#define NSEND   10
 
#define BGPTIMEOUT   0
 
#define FASTSETUP   1
 

Typedefs

using SpkPool = Pool< NRNMPI_Spike >
 

Functions

IvocVectvector_arg (int)
 
void vector_resize (IvocVect *, int)
 
double nrn_bgp_receive_time (int type)
 
void nrnmpi_bgp_comm ()
 
void nrnmpi_bgp_multisend (NRNMPI_Spike *, int, int *)
 
int nrnmpi_bgp_single_advance (NRNMPI_Spike *)
 
int nrnmpi_bgp_conserve (int nsend, int nrecv)
 
static void bgp_dma_init ()
 
static int bgp_advance ()
 
void bgp_dma_receive (NrnThread *nt)
 
void bgp_dma_send (PreSyn *ps, double t)
 
void bgpdma_cleanup_presyn (PreSyn *ps)
 
static void bgpdma_cleanup ()
 
void bgp_dma_setup ()
 

Variables

void(* nrntimeout_call )()
 
static unsigned long long dmasend_time_
 
static int n_xtra_cons_check_
 
static int xtra_cons_hist_ [MAXNCONS+1]
 
static unsigned long enq2_find_time_
 
static unsigned long enq2_enqueue_time_
 
static int use_phase2_
 
static BGP_ReceiveBufferbgp_receive_buffer [BGP_INTERVAL]
 
static int current_rbuf
 
static int next_rbuf
 
static int max_ntarget_host
 
static int max_multisend_targets
 

Macro Definition Documentation

◆ BGP_RECEIVEBUFFER_SIZE

#define BGP_RECEIVEBUFFER_SIZE   10000

Definition at line 120 of file bgpdma.cpp.

◆ BGPTIMEOUT

#define BGPTIMEOUT   0

Definition at line 669 of file bgpdma.cpp.

◆ DCMFTICK

#define DCMFTICK   0

Definition at line 58 of file bgpdma.cpp.

◆ DCMFTIMEBASE

#define DCMFTIMEBASE   0

Definition at line 59 of file bgpdma.cpp.

◆ ENQUEUE

#define ENQUEUE   2

Definition at line 102 of file bgpdma.cpp.

◆ FASTSETUP

#define FASTSETUP   1

Definition at line 711 of file bgpdma.cpp.

◆ MAXNCONS

#define MAXNCONS   10

Definition at line 64 of file bgpdma.cpp.

◆ NSEND

#define NSEND   10

Definition at line 339 of file bgpdma.cpp.

◆ NTARGET_HOSTS_PHASE1

#define NTARGET_HOSTS_PHASE1   ntarget_hosts_phase1_

Definition at line 152 of file bgpdma.cpp.

◆ PHASE2BUFFER_MASK

#define PHASE2BUFFER_MASK   (PHASE2BUFFER_SIZE - 1)

Definition at line 110 of file bgpdma.cpp.

◆ PHASE2BUFFER_SIZE

#define PHASE2BUFFER_SIZE   2048

Definition at line 109 of file bgpdma.cpp.

◆ TBUF

#define TBUF

Definition at line 93 of file bgpdma.cpp.

◆ TBUFSIZE

#define TBUFSIZE   0

Definition at line 77 of file bgpdma.cpp.

◆ USE_RDTSCL

#define USE_RDTSCL   0

Definition at line 71 of file bgpdma.cpp.

Typedef Documentation

◆ SpkPool

Definition at line 118 of file bgpdma.cpp.

Function Documentation

◆ bgp_advance()

static int bgp_advance ( )
static

Definition at line 434 of file bgpdma.cpp.

◆ bgp_dma_init()

static void bgp_dma_init ( )
static

Definition at line 413 of file bgpdma.cpp.

◆ bgp_dma_receive()

void bgp_dma_receive ( NrnThread nt)

Definition at line 543 of file bgpdma.cpp.

◆ bgp_dma_send()

void bgp_dma_send ( PreSyn ps,
double  t 
)

Definition at line 624 of file bgpdma.cpp.

◆ bgp_dma_setup()

void bgp_dma_setup ( )

Definition at line 716 of file bgpdma.cpp.

◆ bgpdma_cleanup()

static void bgpdma_cleanup ( )
static

Definition at line 648 of file bgpdma.cpp.

◆ bgpdma_cleanup_presyn()

void bgpdma_cleanup_presyn ( PreSyn ps)

Definition at line 635 of file bgpdma.cpp.

◆ nrn_bgp_receive_time()

double nrn_bgp_receive_time ( int  type)

Definition at line 347 of file bgpdma.cpp.

◆ nrnmpi_bgp_comm()

void nrnmpi_bgp_comm ( )

◆ nrnmpi_bgp_conserve()

int nrnmpi_bgp_conserve ( int  nsend,
int  nrecv 
)

◆ nrnmpi_bgp_multisend()

void nrnmpi_bgp_multisend ( NRNMPI_Spike ,
int  ,
int  
)

◆ nrnmpi_bgp_single_advance()

int nrnmpi_bgp_single_advance ( NRNMPI_Spike )

◆ vector_arg()

IvocVect* vector_arg ( int  )

Definition at line 332 of file ivocvect.cpp.

◆ vector_resize()

void vector_resize ( IvocVect ,
int   
)

Variable Documentation

◆ bgp_receive_buffer

BGP_ReceiveBuffer* bgp_receive_buffer[BGP_INTERVAL]
static

Definition at line 176 of file bgpdma.cpp.

◆ current_rbuf

int current_rbuf
static

Definition at line 177 of file bgpdma.cpp.

◆ dmasend_time_

unsigned long long dmasend_time_
static

Definition at line 62 of file bgpdma.cpp.

◆ enq2_enqueue_time_

unsigned long enq2_enqueue_time_
static

Definition at line 106 of file bgpdma.cpp.

◆ enq2_find_time_

unsigned long enq2_find_time_
static

Definition at line 105 of file bgpdma.cpp.

◆ max_multisend_targets

int max_multisend_targets
static

Definition at line 345 of file bgpdma.cpp.

◆ max_ntarget_host

int max_ntarget_host
static

Definition at line 341 of file bgpdma.cpp.

◆ n_xtra_cons_check_

int n_xtra_cons_check_
static

Definition at line 63 of file bgpdma.cpp.

◆ next_rbuf

int next_rbuf
static

Definition at line 177 of file bgpdma.cpp.

◆ nrntimeout_call

void(* nrntimeout_call) ()

◆ use_phase2_

int use_phase2_
static

Definition at line 151 of file bgpdma.cpp.

◆ xtra_cons_hist_

int xtra_cons_hist_[MAXNCONS+1]
static

Definition at line 66 of file bgpdma.cpp.