starpu_mpi_fxt.h 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  1. /* StarPU --- Runtime system for heterogeneous multicore architectures.
  2. *
  3. * Copyright (C) 2010 Université de Bordeaux
  4. * Copyright (C) 2010, 2012 CNRS
  5. *
  6. * StarPU is free software; you can redistribute it and/or modify
  7. * it under the terms of the GNU Lesser General Public License as published by
  8. * the Free Software Foundation; either version 2.1 of the License, or (at
  9. * your option) any later version.
  10. *
  11. * StarPU is distributed in the hope that it will be useful, but
  12. * WITHOUT ANY WARRANTY; without even the implied warranty of
  13. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
  14. *
  15. * See the GNU Lesser General Public License in COPYING.LGPL for more details.
  16. */
  17. #ifndef __STARPU_MPI_FXT_H__
  18. #define __STARPU_MPI_FXT_H__
  19. #include <starpu.h>
  20. #include <common/config.h>
  21. #include <common/fxt.h>
  22. #ifdef __cplusplus
  23. extern "C" {
  24. #endif
  25. #define _STARPU_MPI_FUT_START 0x5201
  26. #define _STARPU_MPI_FUT_STOP 0x5202
  27. #define _STARPU_MPI_FUT_BARRIER 0x5203
  28. #define _STARPU_MPI_FUT_ISEND_SUBMIT_BEGIN 0x5204
  29. #define _STARPU_MPI_FUT_ISEND_SUBMIT_END 0x5205
  30. #define _STARPU_MPI_FUT_IRECV_SUBMIT_BEGIN 0x5206
  31. #define _STARPU_MPI_FUT_IRECV_SUBMIT_END 0x5207
  32. #define _STARPU_MPI_FUT_ISEND_COMPLETE_BEGIN 0x5208
  33. #define _STARPU_MPI_FUT_ISEND_COMPLETE_END 0x5209
  34. #define _STARPU_MPI_FUT_IRECV_COMPLETE_BEGIN 0x5210
  35. #define _STARPU_MPI_FUT_IRECV_COMPLETE_END 0x5211
  36. #define _STARPU_MPI_FUT_SLEEP_BEGIN 0x5212
  37. #define _STARPU_MPI_FUT_SLEEP_END 0x5213
  38. #define _STARPU_MPI_FUT_DTESTING_BEGIN 0x5214
  39. #define _STARPU_MPI_FUT_DTESTING_END 0x5215
  40. #define _STARPU_MPI_FUT_UTESTING_BEGIN 0x5216
  41. #define _STARPU_MPI_FUT_UTESTING_END 0x5217
  42. #define _STARPU_MPI_FUT_UWAIT_BEGIN 0x5218
  43. #define _STARPU_MPI_FUT_UWAIT_END 0x5219
  44. #ifdef STARPU_USE_FXT
  45. #define _STARPU_MPI_TRACE_START(rank, worldsize) \
  46. FUT_DO_PROBE3(_STARPU_MPI_FUT_START, (rank), (worldsize), _starpu_gettid());
  47. #define _STARPU_MPI_TRACE_STOP(rank, worldsize) \
  48. FUT_DO_PROBE3(_STARPU_MPI_FUT_STOP, (rank), (worldsize), _starpu_gettid());
  49. #define _STARPU_MPI_TRACE_BARRIER(rank, worldsize, key) \
  50. FUT_DO_PROBE4(_STARPU_MPI_FUT_BARRIER, (rank), (worldsize), (key), _starpu_gettid());
  51. #define _STARPU_MPI_TRACE_ISEND_SUBMIT_BEGIN(dest, mpi_tag, size) \
  52. FUT_DO_PROBE4(_STARPU_MPI_FUT_ISEND_SUBMIT_BEGIN, (dest), (mpi_tag), (size), _starpu_gettid());
  53. #define _STARPU_MPI_TRACE_ISEND_SUBMIT_END(dest, mpi_tag, size) \
  54. FUT_DO_PROBE4(_STARPU_MPI_FUT_ISEND_SUBMIT_END, (dest), (mpi_tag), (size), _starpu_gettid());
  55. #define _STARPU_MPI_TRACE_IRECV_SUBMIT_BEGIN(src, mpi_tag) \
  56. FUT_DO_PROBE3(_STARPU_MPI_FUT_IRECV_SUBMIT_BEGIN, (src), (mpi_tag), _starpu_gettid());
  57. #define _STARPU_MPI_TRACE_IRECV_SUBMIT_END(src, mpi_tag) \
  58. FUT_DO_PROBE3(_STARPU_MPI_FUT_IRECV_SUBMIT_END, (src), (mpi_tag), _starpu_gettid());
  59. #define _STARPU_MPI_TRACE_ISEND_COMPLETE_BEGIN(dest, mpi_tag, size) \
  60. FUT_DO_PROBE4(_STARPU_MPI_FUT_ISEND_COMPLETE_BEGIN, (dest), (mpi_tag), (size), _starpu_gettid());
  61. #define _STARPU_MPI_TRACE_ISEND_COMPLETE_END(dest, mpi_tag, size) \
  62. FUT_DO_PROBE4(_STARPU_MPI_FUT_ISEND_COMPLETE_END, (dest), (mpi_tag), (size), _starpu_gettid());
  63. #define _STARPU_MPI_TRACE_IRECV_COMPLETE_BEGIN(src, mpi_tag) \
  64. FUT_DO_PROBE3(_STARPU_MPI_FUT_IRECV_COMPLETE_BEGIN, (src), (mpi_tag), _starpu_gettid());
  65. #define _STARPU_MPI_TRACE_IRECV_COMPLETE_END(src, mpi_tag) \
  66. FUT_DO_PROBE3(_STARPU_MPI_FUT_IRECV_COMPLETE_END, (src), (mpi_tag), _starpu_gettid());
  67. #define _STARPU_MPI_TRACE_SLEEP_BEGIN() \
  68. FUT_DO_PROBE1(_STARPU_MPI_FUT_SLEEP_BEGIN, _starpu_gettid());
  69. #define _STARPU_MPI_TRACE_SLEEP_END() \
  70. FUT_DO_PROBE1(_STARPU_MPI_FUT_SLEEP_END, _starpu_gettid());
  71. #define _STARPU_MPI_TRACE_DTESTING_BEGIN() \
  72. FUT_DO_PROBE1(_STARPU_MPI_FUT_DTESTING_BEGIN, _starpu_gettid());
  73. #define _STARPU_MPI_TRACE_DTESTING_END() \
  74. FUT_DO_PROBE1(_STARPU_MPI_FUT_DTESTING_END, _starpu_gettid());
  75. #define _STARPU_MPI_TRACE_UTESTING_BEGIN(src, mpi_tag) \
  76. FUT_DO_PROBE3(_STARPU_MPI_FUT_UTESTING_BEGIN, (src), (mpi_tag), _starpu_gettid());
  77. #define _STARPU_MPI_TRACE_UTESTING_END(src, mpi_tag) \
  78. FUT_DO_PROBE3(_STARPU_MPI_FUT_UTESTING_END, (src), (mpi_tag), _starpu_gettid());
  79. #define _STARPU_MPI_TRACE_UWAIT_BEGIN(src, mpi_tag) \
  80. FUT_DO_PROBE3(_STARPU_MPI_FUT_UWAIT_BEGIN, (src), (mpi_tag), _starpu_gettid());
  81. #define _STARPU_MPI_TRACE_UWAIT_END(src, mpi_tag) \
  82. FUT_DO_PROBE3(_STARPU_MPI_FUT_UWAIT_END, (src), (mpi_tag), _starpu_gettid());
  83. #define TRACE
  84. #else
  85. #define _STARPU_MPI_TRACE_START(a, b) do {} while(0);
  86. #define _STARPU_MPI_TRACE_STOP(a, b) do {} while(0);
  87. #define _STARPU_MPI_TRACE_BARRIER(a, b, c) do {} while(0);
  88. #define _STARPU_MPI_TRACE_ISEND_SUBMIT_BEGIN(a, b, c) do {} while(0);
  89. #define _STARPU_MPI_TRACE_ISEND_SUBMIT_END(a, b, c) do {} while(0);
  90. #define _STARPU_MPI_TRACE_IRECV_SUBMIT_BEGIN(a, b) do {} while(0);
  91. #define _STARPU_MPI_TRACE_IRECV_SUBMIT_END(a, b) do {} while(0);
  92. #define _STARPU_MPI_TRACE_ISEND_COMPLETE_BEGIN(a, b, c) do {} while(0);
  93. #define _STARPU_MPI_TRACE_ISEND_COMPLETE_END(a, b, c) do {} while(0);
  94. #define _STARPU_MPI_TRACE_IRECV_COMPLETE_BEGIN(a, b) do {} while(0);
  95. #define _STARPU_MPI_TRACE_IRECV_COMPLETE_END(a, b) do {} while(0);
  96. #define _STARPU_MPI_TRACE_SLEEP_BEGIN() do {} while(0);
  97. #define _STARPU_MPI_TRACE_SLEEP_END() do {} while(0);
  98. #define _STARPU_MPI_TRACE_DTESTING_BEGIN() do {} while(0);
  99. #define _STARPU_MPI_TRACE_DTESTING_END() do {} while(0);
  100. #define _STARPU_MPI_TRACE_UTESTING_BEGIN(a, b) do {} while(0);
  101. #define _STARPU_MPI_TRACE_UTESTING_END(a, b) do {} while(0);
  102. #define _STARPU_MPI_TRACE_UWAIT_BEGIN(a, b) do {} while(0);
  103. #define _STARPU_MPI_TRACE_UWAIT_END(a, b) do {} while(0);
  104. #endif
  105. #ifdef __cplusplus
  106. }
  107. #endif
  108. #endif // __STARPU_MPI_FXT_H__