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)