Tiramisu Compiler
mpi_comm.h
Go to the documentation of this file.
1 #ifndef TIRAMISU_MPI_H
2 #define TIRAMISU_MPI_H
3 
4 #ifdef WITH_MPI
5 #include <mpi.h>
6 
7 int tiramisu_MPI_init();
8 void tiramisu_MPI_cleanup();
9 void tiramisu_MPI_global_barrier();
10 
11 extern "C" {
12 
13 inline void check_MPI_error(int ret_val);
14 
15 int tiramisu_MPI_Comm_rank(int offset);
16 
17 void tiramisu_MPI_Wait(void *request);
18 
19 void tiramisu_MPI_Send(int count, int dest, int tag, char *data, MPI_Datatype type);
20 void tiramisu_MPI_Send_int8(int count, int dest, int tag, char *data);
21 void tiramisu_MPI_Send_int16(int count, int dest, int tag, short *data);
22 void tiramisu_MPI_Send_int32(int count, int dest, int tag, int *data);
23 void tiramisu_MPI_Send_int64(int count, int dest, int tag, long *data);
24 void tiramisu_MPI_Send_uint8(int count, int dest, int tag, unsigned char *data);
25 void tiramisu_MPI_Send_uint16(int count, int dest, int tag, unsigned short *data);
26 void tiramisu_MPI_Send_uint32(int count, int dest, int tag, unsigned int *data);
27 void tiramisu_MPI_Send_uint64(int count, int dest, int tag, unsigned long *data);
28 void tiramisu_MPI_Send_f32(int count, int dest, int tag, float *data);
29 void tiramisu_MPI_Send_f64(int count, int dest, int tag, double *data);
30 
31 void tiramisu_MPI_Ssend(int count, int dest, int tag, char *data, MPI_Datatype type);
32 void tiramisu_MPI_Ssend_int8(int count, int dest, int tag, char *data);
33 void tiramisu_MPI_Ssend_int16(int count, int dest, int tag, short *data);
34 void tiramisu_MPI_Ssend_int32(int count, int dest, int tag, int *data);
35 void tiramisu_MPI_Ssend_int64(int count, int dest, int tag, long *data);
36 void tiramisu_MPI_Ssend_uint8(int count, int dest, int tag, unsigned char *data);
37 void tiramisu_MPI_Ssend_uint16(int count, int dest, int tag, unsigned short *data);
38 void tiramisu_MPI_Ssend_uint32(int count, int dest, int tag, unsigned int *data);
39 void tiramisu_MPI_Ssend_uint64(int count, int dest, int tag, unsigned long *data);
40 void tiramisu_MPI_Ssend_f32(int count, int dest, int tag, float *data);
41 void tiramisu_MPI_Ssend_f64(int count, int dest, int tag, double *data);
42 
43 void tiramisu_MPI_Isend(int count, int dest, int tag, char *data, MPI_Datatype type, long *reqs);
44 void tiramisu_MPI_Isend_int8(int count, int dest, int tag, char *data, long *reqs);
45 void tiramisu_MPI_Isend_int16(int count, int dest, int tag, short *data, long *reqs);
46 void tiramisu_MPI_Isend_int32(int count, int dest, int tag, int *data, long *reqs);
47 void tiramisu_MPI_Isend_int64(int count, int dest, int tag, long *data, long *reqs);
48 void tiramisu_MPI_Isend_uint8(int count, int dest, int tag, unsigned char *data, long *reqs);
49 void tiramisu_MPI_Isend_uint16(int count, int dest, int tag, unsigned short *data, long *reqs);
50 void tiramisu_MPI_Isend_uint32(int count, int dest, int tag, unsigned int *data, long *reqs);
51 void tiramisu_MPI_Isend_uint64(int count, int dest, int tag, unsigned long *data, long *reqs);
52 void tiramisu_MPI_Isend_f32(int count, int dest, int tag, float *data, long *reqs);
53 void tiramisu_MPI_Isend_f64(int count, int dest, int tag, double *data, long *reqs);
54 
55 void tiramisu_MPI_Issend(int count, int dest, int tag, char *data, MPI_Datatype type, long *reqs);
56 void tiramisu_MPI_Issend_int8(int count, int dest, int tag, char *data, long *reqs);
57 void tiramisu_MPI_Issend_int16(int count, int dest, int tag, short *data, long *reqs);
58 void tiramisu_MPI_Issend_int32(int count, int dest, int tag, int *data, long *reqs);
59 void tiramisu_MPI_Issend_int64(int count, int dest, int tag, long *data, long *reqs);
60 void tiramisu_MPI_Issend_uint8(int count, int dest, int tag, unsigned char *data, long *reqs);
61 void tiramisu_MPI_Issend_uint16(int count, int dest, int tag, unsigned short *data, long *reqs);
62 void tiramisu_MPI_Issend_uint32(int count, int dest, int tag, unsigned int *data, long *reqs);
63 void tiramisu_MPI_Issend_uint64(int count, int dest, int tag, unsigned long *data, long *reqs);
64 void tiramisu_MPI_Issend_f32(int count, int dest, int tag, float *data, long *reqs);
65 void tiramisu_MPI_Issend_f64(int count, int dest, int tag, double *data, long *reqs);
66 
67 void tiramisu_MPI_Recv(int count, int source, int tag, char *store_in, MPI_Datatype type);
68 void tiramisu_MPI_Recv_int8(int count, int source, int tag, char *store_in);
69 void tiramisu_MPI_Recv_int16(int count, int source, int tag, short *store_in);
70 void tiramisu_MPI_Recv_int32(int count, int source, int tag, int *store_in);
71 void tiramisu_MPI_Recv_int64(int count, int source, int tag, long *store_in);
72 void tiramisu_MPI_Recv_uint8(int count, int source, int tag, unsigned char *store_in);
73 void tiramisu_MPI_Recv_uint16(int count, int source, int tag, unsigned short *store_in);
74 void tiramisu_MPI_Recv_uint32(int count, int source, int tag, unsigned int *store_in);
75 void tiramisu_MPI_Recv_uint64(int count, int source, int tag, unsigned long *store_in);
76 void tiramisu_MPI_Recv_f32(int count, int source, int tag, float *store_in);
77 void tiramisu_MPI_Recv_f64(int count, int source, int tag, double *store_in);
78 
79 void tiramisu_MPI_Irecv(int count, int source, int tag, char *store_in, MPI_Datatype type, long *reqs);
80 void tiramisu_MPI_Irecv_int8(int count, int source, int tag, char *store_in, long *reqs);
81 void tiramisu_MPI_Irecv_int16(int count, int source, int tag, short *store_in, long *reqs);
82 void tiramisu_MPI_Irecv_int32(int count, int source, int tag, int *store_in, long *reqs);
83 void tiramisu_MPI_Irecv_int64(int count, int source, int tag, long *store_in, long *reqs);
84 void tiramisu_MPI_Irecv_uint8(int count, int source, int tag, unsigned char *store_in, long *reqs);
85 void tiramisu_MPI_Irecv_uint16(int count, int source, int tag, unsigned short *store_in, long *reqs);
86 void tiramisu_MPI_Irecv_uint32(int count, int source, int tag, unsigned int *store_in, long *reqs);
87 void tiramisu_MPI_Irecv_uint64(int count, int source, int tag, unsigned long *store_in, long *reqs);
88 void tiramisu_MPI_Irecv_f32(int count, int source, int tag, float *store_in, long *reqs);
89 void tiramisu_MPI_Irecv_f64(int count, int source, int tag, double *store_in, long *reqs);
90 
91 }
92 #endif
93 #endif