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 123 of file bgpdma.cpp.

◆ BGPTIMEOUT

#define BGPTIMEOUT   0

Definition at line 680 of file bgpdma.cpp.

◆ DCMFTICK

#define DCMFTICK   0

Definition at line 57 of file bgpdma.cpp.

◆ DCMFTIMEBASE

#define DCMFTIMEBASE   0

Definition at line 58 of file bgpdma.cpp.

◆ ENQUEUE

#define ENQUEUE   2

Definition at line 105 of file bgpdma.cpp.

◆ FASTSETUP

#define FASTSETUP   1

Definition at line 725 of file bgpdma.cpp.

◆ MAXNCONS

#define MAXNCONS   10

Definition at line 63 of file bgpdma.cpp.

◆ NSEND

#define NSEND   10

Definition at line 346 of file bgpdma.cpp.

◆ NTARGET_HOSTS_PHASE1

#define NTARGET_HOSTS_PHASE1   ntarget_hosts_phase1_

Definition at line 155 of file bgpdma.cpp.

◆ PHASE2BUFFER_MASK

#define PHASE2BUFFER_MASK   (PHASE2BUFFER_SIZE - 1)

Definition at line 113 of file bgpdma.cpp.

◆ PHASE2BUFFER_SIZE

#define PHASE2BUFFER_SIZE   2048

Definition at line 112 of file bgpdma.cpp.

◆ TBUF

#define TBUF

Definition at line 96 of file bgpdma.cpp.

◆ TBUFSIZE

#define TBUFSIZE   0

Definition at line 76 of file bgpdma.cpp.

◆ USE_RDTSCL

#define USE_RDTSCL   0

Definition at line 70 of file bgpdma.cpp.

Typedef Documentation

◆ SpkPool

Definition at line 121 of file bgpdma.cpp.

Function Documentation

◆ bgp_advance()

static int bgp_advance ( )
static

Definition at line 443 of file bgpdma.cpp.

◆ bgp_dma_init()

static void bgp_dma_init ( )
static

Definition at line 422 of file bgpdma.cpp.

◆ bgp_dma_receive()

void bgp_dma_receive ( NrnThread nt)

Definition at line 554 of file bgpdma.cpp.

◆ bgp_dma_send()

void bgp_dma_send ( PreSyn ps,
double  t 
)

Definition at line 634 of file bgpdma.cpp.

◆ bgp_dma_setup()

void bgp_dma_setup ( )

Definition at line 730 of file bgpdma.cpp.

◆ bgpdma_cleanup()

static void bgpdma_cleanup ( )
static

Definition at line 659 of file bgpdma.cpp.

◆ bgpdma_cleanup_presyn()

void bgpdma_cleanup_presyn ( PreSyn ps)

Definition at line 646 of file bgpdma.cpp.

◆ nrn_bgp_receive_time()

double nrn_bgp_receive_time ( int  type)

Definition at line 354 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  i)

Definition at line 397 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 179 of file bgpdma.cpp.

◆ current_rbuf

int current_rbuf
static

Definition at line 180 of file bgpdma.cpp.

◆ dmasend_time_

unsigned long long dmasend_time_
static

Definition at line 61 of file bgpdma.cpp.

◆ enq2_enqueue_time_

unsigned long enq2_enqueue_time_
static

Definition at line 109 of file bgpdma.cpp.

◆ enq2_find_time_

unsigned long enq2_find_time_
static

Definition at line 108 of file bgpdma.cpp.

◆ max_multisend_targets

int max_multisend_targets
static

Definition at line 352 of file bgpdma.cpp.

◆ max_ntarget_host

int max_ntarget_host
static

Definition at line 348 of file bgpdma.cpp.

◆ n_xtra_cons_check_

int n_xtra_cons_check_
static

Definition at line 62 of file bgpdma.cpp.

◆ next_rbuf

int next_rbuf
static

Definition at line 180 of file bgpdma.cpp.

◆ nrntimeout_call

void(* nrntimeout_call) () ( )
extern

◆ use_phase2_

int use_phase2_
static

Definition at line 154 of file bgpdma.cpp.

◆ xtra_cons_hist_

int xtra_cons_hist_[MAXNCONS+1]
static

Definition at line 65 of file bgpdma.cpp.