NEURON
multisend.cpp File Reference
#include <structpool.h>
#include "multisend_setup.cpp"

Go to the source code of this file.

Classes

struct  Phase2Buffer
 
class  Multisend_ReceiveBuffer
 
class  Multisend_Send
 
class  Multisend_Send_Phase2
 

Macros

#define USE_RDTSCL   0
 
#define TBUFSIZE   0
 
#define TBUF
 
#define ENQUEUE   2
 
#define PHASE2BUFFER_SIZE   2048
 
#define PHASE2BUFFER_MASK   (PHASE2BUFFER_SIZE - 1)
 
#define MULTISEND_RECEIVEBUFFER_SIZE   10000
 
#define NSEND   10
 

Typedefs

using SpkPool = Pool< NRNMPI_Spike >
 

Functions

double nrn_multisend_receive_time (int type)
 
void nrnmpi_multisend_comm ()
 
void nrnmpi_multisend_multisend (NRNMPI_Spike *, int, int *)
 
int nrnmpi_multisend_single_advance (NRNMPI_Spike *)
 
int nrnmpi_multisend_conserve (int nsend, int nrecv)
 
static void nrn_multisend_init ()
 
static int multisend_advance ()
 
multisend_receive_buffer[current_rbufenqueue ()
 
 if (n_multisend_interval==2)
 
TBUF void nrn_multisend_send (PreSyn *ps, double t)
 
void nrn_multisend_cleanup_presyn (PreSyn *ps)
 
static void nrn_multisend_cleanup ()
 
void nrn_multisend_setup ()
 

Variables

static unsigned long enq2_find_time_ = 0
 
static unsigned long enq2_enqueue_time_ = 0
 
static int use_phase2_
 
static Multisend_ReceiveBuffermultisend_receive_buffer [2]
 
static int current_rbuf
 
static int next_rbuf
 
static int max_ntarget_host
 
static int max_multisend_targets
 
 w1 = nrnmpi_wtime() - w1
 
 w2 = nrnmpi_wtime()
 
 s = r = multisend_receive_buffer[current_rbuf]->nsend_cell_ = 0
 
multisend_receive_buffer[current_rbufphase2_nsend_cell_ = 0
 
multisend_receive_buffer[current_rbufphase2_nsend_ = 0
 
 wt1_ = nrnmpi_wtime() - w2
 
 wt_ = w1
 

Macro Definition Documentation

◆ ENQUEUE

#define ENQUEUE   2

Definition at line 83 of file multisend.cpp.

◆ MULTISEND_RECEIVEBUFFER_SIZE

#define MULTISEND_RECEIVEBUFFER_SIZE   10000

Definition at line 101 of file multisend.cpp.

◆ NSEND

#define NSEND   10

Definition at line 311 of file multisend.cpp.

◆ PHASE2BUFFER_MASK

#define PHASE2BUFFER_MASK   (PHASE2BUFFER_SIZE - 1)

Definition at line 91 of file multisend.cpp.

◆ PHASE2BUFFER_SIZE

#define PHASE2BUFFER_SIZE   2048

Definition at line 90 of file multisend.cpp.

◆ TBUF

#define TBUF

Definition at line 74 of file multisend.cpp.

◆ TBUFSIZE

#define TBUFSIZE   0

Definition at line 54 of file multisend.cpp.

◆ USE_RDTSCL

#define USE_RDTSCL   0

Definition at line 48 of file multisend.cpp.

Typedef Documentation

◆ SpkPool

Definition at line 99 of file multisend.cpp.

Function Documentation

◆ enqueue()

◆ if()

if ( n_multisend_interval  = = 2)

Definition at line 534 of file multisend.cpp.

◆ multisend_advance()

static int multisend_advance ( )
static

Definition at line 389 of file multisend.cpp.

◆ nrn_multisend_cleanup()

static void nrn_multisend_cleanup ( )
static

Definition at line 566 of file multisend.cpp.

◆ nrn_multisend_cleanup_presyn()

void nrn_multisend_cleanup_presyn ( PreSyn ps)

Definition at line 553 of file multisend.cpp.

◆ nrn_multisend_init()

static void nrn_multisend_init ( )
static

Definition at line 375 of file multisend.cpp.

◆ nrn_multisend_receive_time()

double nrn_multisend_receive_time ( int  type)

Definition at line 319 of file multisend.cpp.

◆ nrn_multisend_send()

TBUF void nrn_multisend_send ( PreSyn ps,
double  t 
)

Definition at line 541 of file multisend.cpp.

◆ nrn_multisend_setup()

void nrn_multisend_setup ( )

Definition at line 617 of file multisend.cpp.

◆ nrnmpi_multisend_comm()

void nrnmpi_multisend_comm ( )

◆ nrnmpi_multisend_conserve()

int nrnmpi_multisend_conserve ( int  nsend,
int  nrecv 
)

◆ nrnmpi_multisend_multisend()

void nrnmpi_multisend_multisend ( NRNMPI_Spike ,
int  ,
int *   
)

◆ nrnmpi_multisend_single_advance()

int nrnmpi_multisend_single_advance ( NRNMPI_Spike )

Variable Documentation

◆ current_rbuf

int current_rbuf
static

Definition at line 157 of file multisend.cpp.

◆ enq2_enqueue_time_

enq2_enqueue_time_ = 0
static

Definition at line 87 of file multisend.cpp.

◆ enq2_find_time_

enq2_find_time_ = 0
static

Definition at line 86 of file multisend.cpp.

◆ max_multisend_targets

int max_multisend_targets
static

Definition at line 317 of file multisend.cpp.

◆ max_ntarget_host

int max_ntarget_host
static

Definition at line 313 of file multisend.cpp.

◆ multisend_receive_buffer

Multisend_ReceiveBuffer* multisend_receive_buffer[2]
static

Definition at line 156 of file multisend.cpp.

◆ next_rbuf

int next_rbuf
static

Definition at line 157 of file multisend.cpp.

◆ phase2_nsend_

Definition at line 523 of file multisend.cpp.

◆ phase2_nsend_cell_

multisend_receive_buffer [current_rbuf] phase2_nsend_cell_ = 0

Definition at line 522 of file multisend.cpp.

◆ s

s = r = multisend_receive_buffer[current_rbuf]->nsend_cell_ = 0

Definition at line 521 of file multisend.cpp.

◆ use_phase2_

int use_phase2_
static

Definition at line 132 of file multisend.cpp.

◆ w1

w1 = nrnmpi_wtime() - w1

Definition at line 497 of file multisend.cpp.

◆ w2

w2 = nrnmpi_wtime()

Definition at line 498 of file multisend.cpp.

◆ wt1_

wt1_ = nrnmpi_wtime() - w2

Definition at line 531 of file multisend.cpp.

◆ wt_

wt_ = w1

Definition at line 532 of file multisend.cpp.