- if (not TRACE_smpi_is_enabled()) {
- cleanup_extra_data(extra);
- return;
- }
-
- char str[INSTR_DEFAULT_STR_SIZE];
- smpi_container(rank, str, INSTR_DEFAULT_STR_SIZE);
- container_t container = simgrid::instr::Container::byName(str);
- simgrid::instr::Type* type = container->type_->byName("MPI_STATE");
- const char *color = instr_find_color (operation);
- simgrid::instr::Value* val = simgrid::instr::Value::byNameOrCreate(operation, color, type);
- new simgrid::instr::PushStateEvent(SIMIX_get_clock(), container, type, val, static_cast<void*>(extra));
-}
-
-void TRACE_smpi_collective_out(int rank, const char *operation)
-{
- if (not TRACE_smpi_is_enabled())
- return;
-
- char str[INSTR_DEFAULT_STR_SIZE];
- smpi_container(rank, str, INSTR_DEFAULT_STR_SIZE);
- container_t container = simgrid::instr::Container::byName(str);
- simgrid::instr::Type* type = container->type_->byName("MPI_STATE");
-
- new simgrid::instr::PopStateEvent(SIMIX_get_clock(), container, type);
-}
-
-void TRACE_smpi_computing_init(int rank)
-{
- //first use, initialize the color in the trace
- if (not TRACE_smpi_is_enabled() || not TRACE_smpi_is_computing())
- return;
-
- char str[INSTR_DEFAULT_STR_SIZE];
- smpi_container(rank, str, INSTR_DEFAULT_STR_SIZE);
- container_t container = simgrid::instr::Container::byName(str);
- simgrid::instr::Type* type = container->type_->byName("MPI_STATE");
- const char* color = instr_find_color("computing");
- new simgrid::instr::PushStateEvent(SIMIX_get_clock(), container, type,
- simgrid::instr::Value::byNameOrCreate("computing", color, type));
-}
-
-void TRACE_smpi_computing_in(int rank, instr_extra_data extra)
-{
- //do not forget to set the color first, otherwise this will explode
- if (not TRACE_smpi_is_enabled() || not TRACE_smpi_is_computing()) {
- cleanup_extra_data(extra);
- return;
- }
-
- char str[INSTR_DEFAULT_STR_SIZE];
- smpi_container(rank, str, INSTR_DEFAULT_STR_SIZE);
- container_t container = simgrid::instr::Container::byName(str);
- simgrid::instr::Type* type = container->type_->byName("MPI_STATE");
- simgrid::instr::Value* val = simgrid::instr::Value::byNameOrCreate("computing", "", type);
- new simgrid::instr::PushStateEvent(SIMIX_get_clock(), container, type, val, static_cast<void*>(extra));
-}
-
-void TRACE_smpi_computing_out(int rank)
-{
- if (not TRACE_smpi_is_enabled() || not TRACE_smpi_is_computing())
- return;
- char str[INSTR_DEFAULT_STR_SIZE];
- smpi_container(rank, str, INSTR_DEFAULT_STR_SIZE);
- container_t container = simgrid::instr::Container::byName(str);
- simgrid::instr::Type* type = container->type_->byName("MPI_STATE");
- new simgrid::instr::PopStateEvent(SIMIX_get_clock(), container, type);
-}
-
-void TRACE_smpi_sleeping_init(int rank)
-{
- //first use, initialize the color in the trace
- if (not TRACE_smpi_is_enabled() || not TRACE_smpi_is_sleeping())
- return;
-
- char str[INSTR_DEFAULT_STR_SIZE];
- smpi_container(rank, str, INSTR_DEFAULT_STR_SIZE);
- container_t container = simgrid::instr::Container::byName(str);
- simgrid::instr::Type* type = container->type_->byName("MPI_STATE");
- const char *color = instr_find_color ("sleeping");
- simgrid::instr::Value* val = simgrid::instr::Value::byNameOrCreate("sleeping", color, type);
- new simgrid::instr::PushStateEvent(SIMIX_get_clock(), container, type, val);
-}
-
-void TRACE_smpi_sleeping_in(int rank, instr_extra_data extra)
-{
- //do not forget to set the color first, otherwise this will explode
- if (not TRACE_smpi_is_enabled() || not TRACE_smpi_is_sleeping()) {
- cleanup_extra_data(extra);
- return;
- }
-
- char str[INSTR_DEFAULT_STR_SIZE];
- smpi_container(rank, str, INSTR_DEFAULT_STR_SIZE);
- container_t container = simgrid::instr::Container::byName(str);
- simgrid::instr::Type* type = container->type_->byName("MPI_STATE");
- simgrid::instr::Value* val = simgrid::instr::Value::byNameOrCreate("sleeping", "", type);
- new simgrid::instr::PushStateEvent(SIMIX_get_clock(), container, type, val, static_cast<void*>(extra));