+ }
+#else
+#define TRACE_AUTO_COLL(cat)
+#endif
+
+
+#define AUTOMATIC_COLL_BENCH(cat, ret, args, args2)\
+ ret smpi_coll_tuned_ ## cat ## _ ## automatic(COLL_UNPAREN args)\
+{\
+ double time1, time2, time_min=DBL_MAX;\
+ volatile int min_coll=-1, global_coll=-1;\
+ volatile int i;\
+ xbt_ex_t ex;\
+ double buf_in, buf_out, max_min=DBL_MAX;\
+ for (i = 0; mpi_coll_##cat##_description[i].name; i++){\
+ if(!strcmp(mpi_coll_##cat##_description[i].name, "automatic"))continue;\
+ if(!strcmp(mpi_coll_##cat##_description[i].name, "default"))continue;\
+ smpi_mpi_barrier(comm);\
+ TRACE_AUTO_COLL(cat)\