5 #include "../interface/timer.h"    11 #define MPI_Bcast(...)                                            \    12   { CTF::Timer __t("MPI_Bcast");                                   \    14     PMPI_Bcast(__VA_ARGS__);                                      \    16 #define MPI_Reduce(...)                                           \    17   { CTF::Timer __t("MPI_Reduce");                                  \    19     PMPI_Reduce(__VA_ARGS__);                                     \    21 #define MPI_Wait(...)                                             \    22   { CTF::Timer __t("MPI_Wait");                                    \    24     PMPI_Wait(__VA_ARGS__);                                       \    26 #define MPI_Send(...)                                             \    27   { CTF::Timer __t("MPI_Send");                                    \    29     PMPI_Send(__VA_ARGS__);                                       \    31 #define MPI_Allreduce(...)                                        \    32   { CTF::Timer __t("MPI_Allreduce");                               \    34     PMPI_Allreduce(__VA_ARGS__);                                  \    36 #define MPI_Allgather(...)                                        \    37   { CTF::Timer __t("MPI_Allgather");                               \    39     PMPI_Allgather(__VA_ARGS__);                                  \    41 #define MPI_Scatter(...)                                          \    42   { CTF::Timer __t("MPI_Scatter");                                 \    44     PMPI_Scatter(__VA_ARGS__);                                    \    46 #define MPI_Alltoall(...)                                         \    47   { CTF::Timer __t("MPI_Alltoall");                                \    49     PMPI_Alltoall(__VA_ARGS__);                                   \    51 #define MPI_Alltoallv(...)                                        \    52   { CTF::Timer __t("MPI_Alltoallv");                               \    54     PMPI_Alltoallv(__VA_ARGS__);                                  \    56 #define MPI_Gatherv(...)                                          \    57   { CTF::Timer __t("MPI_Gatherv");                                 \    59     PMPI_Gatherv(__VA_ARGS__);                                    \    61 #define MPI_Scatterv(...)                                         \    62   { CTF::Timer __t("MPI_Scatterv");                                \    64    PMPI_Scatterv(__VA_ARGS__);                                    \    66 #define MPI_Waitall(...)                                          \    67   { CTF::Timer __t("MPI_Waitall");                                 \    69     PMPI_Waitall(__VA_ARGS__);                                    \    71 #define MPI_Barrier(...)                                          \    72   { CTF::Timer __t("MPI_Barrier");                                 \    74     PMPI_Barrier(__VA_ARGS__);                                    \ void set_context(MPI_Comm ctxt)