9 #if defined(HAVE_STDINT_H) 15 #if defined(__cplusplus) 20 typedef struct bbsmpibuf {
29 extern bbsmpibuf* nrnmpi_newbuf(
int size);
30 extern void nrnmpi_copy(bbsmpibuf* dest, bbsmpibuf* src);
31 extern void nrnmpi_ref(bbsmpibuf*
buf);
32 extern void nrnmpi_unref(bbsmpibuf* buf);
34 extern void nrnmpi_upkbegin(bbsmpibuf* buf);
35 extern char* nrnmpi_getkey(bbsmpibuf* buf);
36 extern int nrnmpi_getid(bbsmpibuf* buf);
37 extern int nrnmpi_upkint(bbsmpibuf* buf);
38 extern double nrnmpi_upkdouble(bbsmpibuf* buf);
39 extern void nrnmpi_upkvec(
int n,
double* x, bbsmpibuf* buf);
40 extern char* nrnmpi_upkstr(bbsmpibuf* buf);
41 extern char* nrnmpi_upkpickle(
size_t* size, bbsmpibuf* buf);
43 extern void nrnmpi_pkbegin(bbsmpibuf* buf);
44 extern void nrnmpi_enddata(bbsmpibuf* buf);
45 extern void nrnmpi_pkint(
int i, bbsmpibuf* buf);
46 extern void nrnmpi_pkdouble(
double x, bbsmpibuf* buf);
47 extern void nrnmpi_pkvec(
int n,
double* x, bbsmpibuf* buf);
48 extern void nrnmpi_pkstr(
const char*
s, bbsmpibuf* buf);
49 extern void nrnmpi_pkpickle(
const char* s,
size_t size, bbsmpibuf* buf);
51 extern int nrnmpi_iprobe(
int* size,
int* tag,
int* source);
52 extern void nrnmpi_probe(
int* size,
int* tag,
int* source);
53 extern void nrnmpi_bbssend(
int dest,
int tag, bbsmpibuf* r);
54 extern int nrnmpi_bbsrecv(
int source, bbsmpibuf* r);
55 extern int nrnmpi_bbssendrecv(
int dest,
int tag, bbsmpibuf* s, bbsmpibuf* r);
58 extern void nrnmpi_init(
int nrnmpi_under_nrncontrol,
int* pargc,
char*** pargv);
59 extern int nrnmpi_wrap_mpi_init(
int* flag);
63 extern void nrnmpi_subworld_size(
int n);
67 extern void nrnmpi_spike_initialize();
68 extern int nrnmpi_spike_exchange();
69 extern int nrnmpi_spike_exchange_compressed();
70 extern double nrnmpi_mindelay(
double maxdel);
72 extern void nrnmpi_int_gather(
int* s,
int* r,
int cnt,
int root);
73 extern void nrnmpi_int_gatherv(
int* s,
int scnt,
int* r,
int* rcnt,
int* rdispl,
int root);
74 extern void nrnmpi_char_gatherv(
char* s,
int scnt,
char* r,
int* rcnt,
int* rdispl,
int root);
75 extern void nrnmpi_int_scatter(
int* s,
int* r,
int cnt,
int root);
76 extern void nrnmpi_char_scatterv(
char* s,
int* scnt,
int* sdispl,
char* r,
int rcnt,
int root);
78 extern void nrnmpi_int_allgather_inplace(
int* srcdest,
int n);
79 extern void nrnmpi_int_allgatherv_inplace(
int* srcdest,
int* n,
int* dspl);
81 extern void nrnmpi_char_allgatherv(
char* s,
char* r,
int* n,
int* dspl);
82 extern void nrnmpi_int_alltoall(
int* s,
int* r,
int n);
83 extern void nrnmpi_int_alltoallv(
int* s,
int* scnt,
int* sdispl,
int* r,
int* rcnt,
int* rdispl);
84 extern void nrnmpi_int_alltoallv_sparse(
int* s,
int* scnt,
int* sdispl,
int* r,
int* rcnt,
int* rdispl);
85 extern void nrnmpi_long_allgatherv(int64_t* s, int64_t* r,
int* n,
int* dspl);
86 extern void nrnmpi_long_allgatherv_inplace(
long* srcdest,
int* n,
int* dspl);
87 extern void nrnmpi_long_alltoallv(int64_t* s,
int* scnt,
int* sdispl, int64_t* r,
int* rcnt,
int* rdispl);
88 extern void nrnmpi_long_alltoallv_sparse(int64_t* s,
int* scnt,
int* sdispl, int64_t* r,
int* rcnt,
int* rdispl);
90 extern void nrnmpi_dbl_allgatherv_inplace(
double* srcdest,
int* n,
int* dspl);
91 extern void nrnmpi_dbl_alltoallv(
double* s,
int* scnt,
int* sdispl,
double* r,
int* rcnt,
int* rdispl);
92 extern void nrnmpi_dbl_alltoallv_sparse(
double* s,
int* scnt,
int* sdispl,
double* r,
int* rcnt,
int* rdispl);
93 extern void nrnmpi_char_alltoallv(
char* s,
int* scnt,
int* sdispl,
char* r,
int* rcnt,
int* rdispl);
97 extern void nrnmpi_char_broadcast_world(
char** pstr,
int root);
98 extern int nrnmpi_int_sum_reduce(
int in);
99 extern void nrnmpi_assert_opstep(
int opstep,
double t);
100 extern double nrnmpi_dbl_allmin(
double x);
101 extern int nrnmpi_pgvts_least(
double* t,
int* op,
int*
init);
103 extern void nrnmpi_recv_doubles(
double* pd,
int cnt,
int src,
int tag);
107 extern double nrnmpi_dbl_allreduce(
double x,
int type);
109 extern void nrnmpi_dbl_allreduce_vec(
double* src,
double* dest,
int cnt,
int type);
110 extern void nrnmpi_longdbl_allreduce_vec(
longdbl* src,
longdbl* dest,
int cnt,
int type);
111 extern void nrnmpi_long_allreduce_vec(
long* src,
long* dest,
int cnt,
int type);
113 extern void nrnmpi_dbl_allgather(
double* s,
double* r,
int n);
122 #if defined(__cplusplus) static int nrnmpi_int_allmax(int x)
static void nrnmpi_int_allgatherv(int *s, int *r, int *n, int *dspl)
void nrnmpi_abort(int errcode)
static void nrnmpi_char_broadcast(char *, int, int)
void nrnmpi_bgp_multisend(NRNMPI_Spike *, int, int *)
static void nrnmpi_postrecv_doubles(double *, int, int, int, void **)
int const size_t const size_t n
static void nrnmpi_int_broadcast(int *, int, int)
static void nrnmpi_barrier()
void nrnmpi_init(int nrnmpi_under_nrncontrol, int *pargc, char ***pargv)
static void nrnmpi_int_alltoallv(int *s, int *scnt, int *sdispl, int *r, int *rcnt, int *rdispl)
static void nrnmpi_send_doubles(double *, int, int, int)
static void nrnmpi_int_allgather(int *s, int *r, int n)
int nrnmpi_bgp_conserve(int nsend, int nrecv)
static void nrnmpi_dbl_alltoallv(double *s, int *scnt, int *sdispl, double *r, int *rcnt, int *rdispl)
static void nrnmpi_dbl_broadcast(double *, int, int)
static double nrnmpi_wtime()
static void nrnmpi_dbl_allgatherv(double *s, double *r, int *n, int *dspl)
static void nrnmpi_wait(void **)
int nrnmpi_bgp_single_advance(NRNMPI_Spike *)