#ifdef HAVE_TRACING
+XBT_LOG_NEW_DEFAULT_SUBCATEGORY(instr_smpi, instr, "Tracing SMPI");
+
static xbt_dict_t keys;
static char *TRACE_smpi_container(int rank, char *container, int n)
return key;
}
+static xbt_dict_t process_category;
+
+void TRACE_internal_smpi_set_category (const char *category)
+{
+ if (!TRACE_smpi_is_enabled()) return;
+
+ char processid[INSTR_DEFAULT_STR_SIZE];
+ snprintf (processid, INSTR_DEFAULT_STR_SIZE, "%p", SIMIX_process_self());
+ if (xbt_dict_get_or_null (process_category, processid))
+ xbt_dict_remove (process_category, processid);
+ if (category != NULL)
+ xbt_dict_set (process_category, processid, xbt_strdup(category), xbt_free);
+}
+
+const char *TRACE_internal_smpi_get_category (void)
+{
+ if (!TRACE_smpi_is_enabled()) return NULL;
+
+ char processid[INSTR_DEFAULT_STR_SIZE];
+ snprintf (processid, INSTR_DEFAULT_STR_SIZE, "%p", SIMIX_process_self());
+ return xbt_dict_get_or_null (process_category, processid);
+}
+
void TRACE_smpi_alloc()
{
keys = xbt_dict_new();
+ process_category = xbt_dict_new();
}
void TRACE_smpi_start(void)
{
- if (IS_TRACING_SMPI) {
+ if (TRACE_smpi_is_enabled()) {
TRACE_start();
}
}
void TRACE_smpi_release(void)
{
TRACE_surf_release();
- if (IS_TRACING_SMPI) {
+ if (TRACE_smpi_is_enabled()) {
TRACE_end();
}
}
void TRACE_smpi_init(int rank)
{
- if (!IS_TRACING_SMPI)
+ if (!TRACE_smpi_is_enabled())
return;
char str[INSTR_DEFAULT_STR_SIZE];
void TRACE_smpi_finalize(int rank)
{
- if (!IS_TRACING_SMPI)
+ if (!TRACE_smpi_is_enabled())
return;
char str[INSTR_DEFAULT_STR_SIZE];
void TRACE_smpi_collective_in(int rank, int root, const char *operation)
{
- if (!IS_TRACING_SMPI)
+ if (!TRACE_smpi_is_enabled())
return;
char str[INSTR_DEFAULT_STR_SIZE];
void TRACE_smpi_collective_out(int rank, int root, const char *operation)
{
- if (!IS_TRACING_SMPI)
+ if (!TRACE_smpi_is_enabled())
return;
char str[INSTR_DEFAULT_STR_SIZE];
void TRACE_smpi_ptp_in(int rank, int src, int dst, const char *operation)
{
- if (!IS_TRACING_SMPI)
+ if (!TRACE_smpi_is_enabled())
return;
char str[INSTR_DEFAULT_STR_SIZE];
void TRACE_smpi_ptp_out(int rank, int src, int dst, const char *operation)
{
- if (!IS_TRACING_SMPI)
+ if (!TRACE_smpi_is_enabled())
return;
char str[INSTR_DEFAULT_STR_SIZE];
void TRACE_smpi_send(int rank, int src, int dst)
{
- if (!IS_TRACING_SMPI)
+ if (!TRACE_smpi_is_enabled())
return;
char key[INSTR_DEFAULT_STR_SIZE], str[INSTR_DEFAULT_STR_SIZE];
void TRACE_smpi_recv(int rank, int src, int dst)
{
- if (!IS_TRACING_SMPI)
+ if (!TRACE_smpi_is_enabled())
return;
char key[INSTR_DEFAULT_STR_SIZE], str[INSTR_DEFAULT_STR_SIZE];