Cyclops Tensor Framework
parallel arithmetic on multidimensional arrays
pmpi.h
Go to the documentation of this file.
1 #ifndef __PMPI_H__
2 #define __PMPI_H__
3 
4 #include <mpi.h>
5 #include "../interface/timer.h"
6 namespace CTF {
7  void set_context(MPI_Comm);
8 }
9 
10 #ifdef PMPI
11 #define MPI_Bcast(...) \
12  { CTF::Timer __t("MPI_Bcast"); \
13  __t.start(); \
14  PMPI_Bcast(__VA_ARGS__); \
15  __t.stop(); }
16 #define MPI_Reduce(...) \
17  { CTF::Timer __t("MPI_Reduce"); \
18  __t.start(); \
19  PMPI_Reduce(__VA_ARGS__); \
20  __t.stop(); }
21 #define MPI_Wait(...) \
22  { CTF::Timer __t("MPI_Wait"); \
23  __t.start(); \
24  PMPI_Wait(__VA_ARGS__); \
25  __t.stop(); }
26 #define MPI_Send(...) \
27  { CTF::Timer __t("MPI_Send"); \
28  __t.start(); \
29  PMPI_Send(__VA_ARGS__); \
30  __t.stop(); }
31 #define MPI_Allreduce(...) \
32  { CTF::Timer __t("MPI_Allreduce"); \
33  __t.start(); \
34  PMPI_Allreduce(__VA_ARGS__); \
35  __t.stop(); }
36 #define MPI_Allgather(...) \
37  { CTF::Timer __t("MPI_Allgather"); \
38  __t.start(); \
39  PMPI_Allgather(__VA_ARGS__); \
40  __t.stop(); }
41 #define MPI_Scatter(...) \
42  { CTF::Timer __t("MPI_Scatter"); \
43  __t.start(); \
44  PMPI_Scatter(__VA_ARGS__); \
45  __t.stop(); }
46 #define MPI_Alltoall(...) \
47  { CTF::Timer __t("MPI_Alltoall"); \
48  __t.start(); \
49  PMPI_Alltoall(__VA_ARGS__); \
50  __t.stop(); }
51 #define MPI_Alltoallv(...) \
52  { CTF::Timer __t("MPI_Alltoallv"); \
53  __t.start(); \
54  PMPI_Alltoallv(__VA_ARGS__); \
55  __t.stop(); }
56 #define MPI_Gatherv(...) \
57  { CTF::Timer __t("MPI_Gatherv"); \
58  __t.start(); \
59  PMPI_Gatherv(__VA_ARGS__); \
60  __t.stop(); }
61 #define MPI_Scatterv(...) \
62  { CTF::Timer __t("MPI_Scatterv"); \
63  __t.start(); \
64  PMPI_Scatterv(__VA_ARGS__); \
65  __t.stop(); }
66 #define MPI_Waitall(...) \
67  { CTF::Timer __t("MPI_Waitall"); \
68  __t.start(); \
69  PMPI_Waitall(__VA_ARGS__); \
70  __t.stop(); }
71 #define MPI_Barrier(...) \
72  { CTF::Timer __t("MPI_Barrier"); \
73  __t.start(); \
74  PMPI_Barrier(__VA_ARGS__); \
75  __t.stop(); }
76 #endif
77 
78 #endif
void set_context(MPI_Comm ctxt)
Definition: int_timer.cxx:314
Definition: apsp.cxx:17