bgpdma.cpp File Reference

#include <structpool.h>
Include dependency graph for bgpdma.cpp:

Classes

class  BGP_ReceiveBuffer
class  BGP_DMASend

Defines

#define BGP_RECEIVEBUFFER_SIZE   10000
#define NSEND   10
#define NSEND2   5

Functions

void nrnmpi_int_allgatherv (int *, int *, int *, int *)
void nrnmpi_int_alltoallv (int *, int *, int *, int *, int *, int *)
void nrnmpi_int_gather (int *, int *, int, int)
void nrnmpi_int_gatherv (int *, int, int *, int *, int *, int)
void nrnmpi_barrier ()
 declareStructPool (SpkPool, NRNMPI_Spike) implementStructPool(SpkPool
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)
void bgp_dma_receive ()
void bgp_dma_send (PreSyn *ps, double t)
void bgpdma_send_init (PreSyn *ps)
void bgpdma_cleanup_presyn (PreSyn *ps)
void bgp_dma_setup ()
 NrnHashIterate (Gid2PreSyn, gid2out_, PreSyn *, ps)
 for (i=0;i< nrnmpi_numprocs;++i)
 if (gids) delete[] gids
 NrnHashIterate (Gid2PreSyn, gid2in_, PreSyn *, ps)
 determine_targid_count_on_srchost (srchost_count, tarcounts)
 determine_targids_on_srchost (targid_on_tar, srchost_count, srchost_displ, targid_on_src, tarcounts, tardispl)
 if (gid2out_) for(i=0
i< n;++i){assert(gid2out_-> find (targid_on_src[i], ps))
 if (i==nrnmpi_myid)
 if (targid_on_src) delete[] targid_on_src
 if (targid_on_tar) delete[] targid_on_tar

Variables

 nsrcgid = 0
intgids = nsrcgid ? new int[nsrcgid] : 0
 i = 0
inthost_nsrcgid = new int[nrnmpi_numprocs]
long totalngid = 0
int maxngid = 0
int bufsize = 10000
intn = new int[nrnmpi_numprocs]
intdispl = new int[nrnmpi_numprocs+1]
intbuf = new int[bufsize]
intsrchost_displ = new int[nrnmpi_numprocs + 1]
inttargid_on_tar = ntargid ? new int[ntargid] : 0
inttarcounts = new int[nrnmpi_numprocs]
inttardispl = new int[nrnmpi_numprocs+1]
inttargid_on_src = n ? new int[n] : 0
ps bgp dma_send_ ntarget_hosts_
i< nrnmpi_numprocs;++i){for(int
j=tardispl[i];j< tardispl[i+1];++j){assert(gid2out_->
find(targid_on_src[j], ps));BGP_DMASend
*s=ps-> bgp 
dma_send_
s target_hosts_ [s->ntarget_hosts_++] = i
delete[] srchost_count

Define Documentation

#define BGP_RECEIVEBUFFER_SIZE   10000
#define NSEND   10

Referenced by BGP_DMASend::send().

#define NSEND2   5

Referenced by bgp_dma_setup(), and BGP_DMASend::send().


Function Documentation

void bgp_dma_receive (  ) 
void bgp_dma_send ( PreSyn *  ps,
double  t 
)
void bgp_dma_setup (  ) 

References assert, nrnmpi_bgp_comm(), nrnmpi_numprocs, nrnmpi_wtime(), and NSEND2.

Referenced by nrn_spike_exchange_init().

Here is the call graph for this function:

void bgpdma_cleanup_presyn ( PreSyn *  ps  ) 

Referenced by nrn_cleanup_presyn().

void bgpdma_send_init ( PreSyn *  ps  ) 
declareStructPool ( SpkPool  ,
NRNMPI_Spike   
)
determine_targid_count_on_srchost ( srchost_count  ,
tarcounts   
)
determine_targids_on_srchost ( targid_on_tar  ,
srchost_count  ,
srchost_displ  ,
targid_on_src  ,
tarcounts  ,
tardispl   
)
i< n; ++i) { assert(gid2out_-> find ( targid_on_src  [i],
ps   
)
for (  ) 
if ( targid_on_tar   ) 
if ( targid_on_src   ) 
if ( i  = nrnmpi_myid  ) 
if ( gid2out_   )  [pure virtual]
if ( gids   ) 
NrnHashIterate ( Gid2PreSyn  ,
gid2in_  ,
PreSyn *  ,
ps   
)
NrnHashIterate ( Gid2PreSyn  ,
gid2out_  ,
PreSyn *  ,
ps   
)
void nrnmpi_barrier (  ) 
void nrnmpi_bgp_comm (  ) 

Referenced by bgp_dma_setup().

int nrnmpi_bgp_conserve ( int  nsend,
int  nrecv 
)

Referenced by bgp_dma_receive().

void nrnmpi_bgp_multisend ( NRNMPI_Spike ,
int  ,
int  
)

Referenced by BGP_DMASend::send().

int nrnmpi_bgp_single_advance ( NRNMPI_Spike  ) 
void nrnmpi_int_allgatherv ( int ,
int ,
int ,
int  
)
void nrnmpi_int_alltoallv ( int ,
int ,
int ,
int ,
int ,
int  
)

Referenced by nrnmpi_setup_transfer().

void nrnmpi_int_gather ( int ,
int ,
int  ,
int   
)
void nrnmpi_int_gatherv ( int ,
int  ,
int ,
int ,
int ,
int   
)

Variable Documentation

delete [] buf = new int[bufsize]
bufsize = 10000
delete [] displ = new int[nrnmpi_numprocs+1]
i< nrnmpi_numprocs; ++i) { for (int j = tardispl[i] ; j < tardispl[i+1]; ++j) { assert(gid2out_->find(targid_on_src[j], ps)); BGP_DMASend* s = ps-> bgp dma_send_
int* gids = nsrcgid ? new int[nsrcgid] : 0
delete [] host_nsrcgid = new int[nrnmpi_numprocs]
i = 0
int maxngid = 0
nrnmpi_int_allgather & nsrcgid = 0

Referenced by NrnHashIterate().

delete [] srchost_count
delete [] srchost_displ = new int[nrnmpi_numprocs + 1]
delete [] tarcounts = new int[nrnmpi_numprocs]
delete [] tardispl = new int[nrnmpi_numprocs+1]
int* targid_on_src = n ? new int[n] : 0
int* targid_on_tar = ntargid ? new int[ntargid] : 0
long totalngid = 0
Generated on Mon Jun 13 08:10:28 2011 for NEURON by  doxygen 1.6.3