- for (i = 0; not Colls::mpi_coll_##cat##_description[i].name.empty(); i++) { \
- if (Colls::mpi_coll_##cat##_description[i].name == "automatic") \
- continue; \
- if (Colls::mpi_coll_##cat##_description[i].name == "default") \
- continue; \
- Coll_barrier_default::barrier(comm); \
- TRACE_AUTO_COLL(cat) \
+ auto desc = simgrid::smpi::colls::get_smpi_coll_description(_XBT_STRINGIFY(cat), i); \
+ while (not desc->name.empty()) { \
+ if (desc->name == "automatic") \
+ goto next_iteration; \
+ if (desc->name == "default") \
+ goto next_iteration; \
+ barrier__default(comm); \
+ if (TRACE_is_enabled()) { \
+ simgrid::instr::EventType* type = \
+ simgrid::instr::Container::get_root()->type_->by_name_or_create<simgrid::instr::EventType>( \
+ _XBT_STRINGIFY(cat)); \
+ \
+ std::string cont_name = std::string("rank-" + std::to_string(simgrid::s4u::this_actor::get_pid())); \
+ type->add_entity_value(desc->name, "1.0 1.0 1.0"); \
+ new simgrid::instr::NewEvent(SIMIX_get_clock(), simgrid::instr::Container::by_name(cont_name), type, \
+ type->get_entity_value(desc->name)); \
+ } \