File: git-mpi-types

package info (click to toggle)
eztrace 2.0%2Brepack-12
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 4,132 kB
  • sloc: ansic: 23,501; perl: 910; sh: 857; cpp: 771; makefile: 696; fortran: 327; f90: 320; python: 57
file content (116 lines) | stat: -rw-r--r-- 3,992 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
commit efe547e8041dc36bb555975e0cb01d2c462b6ab2
Author: François Trahay <francois.trahay@telecom-sudparis.eu>
Date:   Tue Aug 23 11:03:07 2022 +0200

    MPI: some MPI datatypes are not always defined

diff --git a/src/modules/mpi/mpi_eztrace.h b/src/modules/mpi/mpi_eztrace.h
index f37a6ff0..7d642991 100644
--- a/src/modules/mpi/mpi_eztrace.h
+++ b/src/modules/mpi/mpi_eztrace.h
@@ -303,13 +303,75 @@ int ezt_mpi_is_in_place_(void* buf);
  */
 #define CHECK_MPI_IN_PLACE(p) (ezt_mpi_is_in_place_(p) ? MPI_IN_PLACE : (p))
 
+/* in some cases (eg on some architectures, or with some MPI implementations), some MPI datatypes
+ * are not defined :/
+ */
+#ifdef MPI_INTEGER1
+#define _EZT_MPI_INTEGER1 MPI_INTEGER1
+#else
+#define _EZT_MPI_INTEGER1 MPI_DATATYPE_NULL
+#endif
+
+#ifdef MPI_INTEGER2
+#define _EZT_MPI_INTEGER2 MPI_INTEGER2
+#else
+#define _EZT_MPI_INTEGER2 MPI_DATATYPE_NULL
+#endif
+
+#ifdef MPI_INTEGER4
+#define _EZT_MPI_INTEGER4 MPI_INTEGER4
+#else
+#define _EZT_MPI_INTEGER4 MPI_DATATYPE_NULL
+#endif
+
+#ifdef MPI_INTEGER8
+#define _EZT_MPI_INTEGER8 MPI_INTEGER8
+#else
+#define _EZT_MPI_INTEGER8 MPI_DATATYPE_NULL
+#endif
+
 #ifdef MPI_INTEGER16
 #define _EZT_MPI_INTEGER16 MPI_INTEGER16
 #else
-/* in some cases (eg with OpenMPI by default), MPI_INTEGER16 is not defined :/ */
 #define _EZT_MPI_INTEGER16 MPI_DATATYPE_NULL
 #endif
 
+#ifdef MPI_REAL4
+#define _EZT_MPI_REAL4 MPI_REAL4
+#else
+#define _EZT_MPI_REAL4 MPI_DATATYPE_NULL
+#endif
+
+#ifdef MPI_REAL8
+#define _EZT_MPI_REAL8 MPI_REAL8
+#else
+#define _EZT_MPI_REAL8 MPI_DATATYPE_NULL
+#endif
+
+#ifdef MPI_REAL16
+#define _EZT_MPI_REAL16 MPI_REAL16
+#else
+#define _EZT_MPI_REAL16 MPI_DATATYPE_NULL
+#endif
+
+#ifdef MPI_COMPLEX8
+#define _EZT_MPI_COMPLEX8 MPI_COMPLEX8
+#else
+#define _EZT_MPI_COMPLEX8 MPI_DATATYPE_NULL
+#endif
+
+#ifdef MPI_COMPLEX16
+#define _EZT_MPI_COMPLEX16 MPI_COMPLEX16
+#else
+#define _EZT_MPI_COMPLEX16 MPI_DATATYPE_NULL
+#endif
+
+#ifdef MPI_COMPLEX32
+#define _EZT_MPI_COMPLEX32 MPI_COMPLEX32
+#else
+#define _EZT_MPI_COMPLEX32 MPI_DATATYPE_NULL
+#endif
+
 #define EZT_DATATYPE_TO_MPI(ezt_datatype)				\
   ezt_datatype == EZT_MPI_DATATYPE_NULL ? MPI_DATATYPE_NULL:		\
     ezt_datatype == EZT_MPI_CHAR ? MPI_CHAR :				\
@@ -346,17 +408,17 @@ int ezt_mpi_is_in_place_(void* buf);
     ezt_datatype == EZT_MPI_2REAL ? MPI_2REAL :				\
     ezt_datatype == EZT_MPI_DOUBLE_COMPLEX ? MPI_DOUBLE_COMPLEX :	\
     ezt_datatype == EZT_MPI_2DOUBLE_PRECISION ? MPI_2DOUBLE_PRECISION : \
-    ezt_datatype == EZT_MPI_REAL4 ? MPI_REAL4 :				\
-    ezt_datatype == EZT_MPI_COMPLEX8 ? MPI_COMPLEX8 :			\
-    ezt_datatype == EZT_MPI_REAL8 ? MPI_REAL8 :				\
-    ezt_datatype == EZT_MPI_COMPLEX16 ? MPI_COMPLEX16 :			\
-    ezt_datatype == EZT_MPI_REAL16 ? MPI_REAL16 :			\
-    ezt_datatype == EZT_MPI_COMPLEX32 ? MPI_COMPLEX32 :			\
-    ezt_datatype == EZT_MPI_INTEGER1 ? MPI_INTEGER1 :			\
-    ezt_datatype == EZT_MPI_INTEGER2 ? MPI_INTEGER2 :			\
-    ezt_datatype == EZT_MPI_INTEGER4 ? MPI_INTEGER4 :			\
-    ezt_datatype == EZT_MPI_INTEGER8 ? MPI_INTEGER8 :			\
-    ezt_datatype == EZT_MPI_INTEGER16 ? _EZT_MPI_INTEGER16 :			\
+    ezt_datatype == EZT_MPI_REAL4 ? _EZT_MPI_REAL4 :			\
+    ezt_datatype == EZT_MPI_COMPLEX8 ? _EZT_MPI_COMPLEX8 :		\
+    ezt_datatype == EZT_MPI_REAL8 ? _EZT_MPI_REAL8 :			\
+    ezt_datatype == EZT_MPI_COMPLEX16 ? _EZT_MPI_COMPLEX16 :		\
+    ezt_datatype == EZT_MPI_REAL16 ? _EZT_MPI_REAL16 :			\
+    ezt_datatype == EZT_MPI_COMPLEX32 ? _EZT_MPI_COMPLEX32 :		\
+    ezt_datatype == EZT_MPI_INTEGER1 ? _EZT_MPI_INTEGER1 :		\
+    ezt_datatype == EZT_MPI_INTEGER2 ? _EZT_MPI_INTEGER2 :		\
+    ezt_datatype == EZT_MPI_INTEGER4 ? _EZT_MPI_INTEGER4 :		\
+    ezt_datatype == EZT_MPI_INTEGER8 ? _EZT_MPI_INTEGER8 :		\
+    ezt_datatype == EZT_MPI_INTEGER16 ? _EZT_MPI_INTEGER16 :		\
     ezt_datatype == EZT_MPI_INT8_T ? MPI_INT8_T :			\
     ezt_datatype == EZT_MPI_INT16_T ? MPI_INT16_T :			\
     ezt_datatype == EZT_MPI_INT32_T ? MPI_INT32_T :			\