Commit f78ef684 authored by Matthieu Dorier's avatar Matthieu Dorier
Browse files

added possibility to generate MPI events without traces

parent dd64e83f
...@@ -72,6 +72,7 @@ struct dumpi_trace_params { ...@@ -72,6 +72,7 @@ struct dumpi_trace_params {
#ifdef ENABLE_CORTEX_PYTHON #ifdef ENABLE_CORTEX_PYTHON
char cortex_script[MAX_NAME_LENGTH_WKLD]; char cortex_script[MAX_NAME_LENGTH_WKLD];
char cortex_class[MAX_NAME_LENGTH_WKLD]; char cortex_class[MAX_NAME_LENGTH_WKLD];
char cortex_gen[MAX_NAME_LENGTH_WKLD];
#endif #endif
}; };
......
...@@ -54,8 +54,9 @@ struct codes_jobmap_params_list jobmap_p; ...@@ -54,8 +54,9 @@ struct codes_jobmap_params_list jobmap_p;
/* Variables for Cortex Support */ /* Variables for Cortex Support */
/* Matthieu's additions start */ /* Matthieu's additions start */
#ifdef ENABLE_CORTEX_PYTHON #ifdef ENABLE_CORTEX_PYTHON
static char cortex_file[512]; static char cortex_file[512] = "\0";
static char cortex_class[512]; static char cortex_class[512] = "\0";
static char cortex_gen[512] = "\0";
#endif #endif
/* Matthieu's additions end */ /* Matthieu's additions end */
...@@ -1157,6 +1158,7 @@ void nw_test_init(nw_state* s, tw_lp* lp) ...@@ -1157,6 +1158,7 @@ void nw_test_init(nw_state* s, tw_lp* lp)
#ifdef ENABLE_CORTEX_PYTHON #ifdef ENABLE_CORTEX_PYTHON
strcpy(params_d.cortex_script, cortex_file); strcpy(params_d.cortex_script, cortex_file);
strcpy(params_d.cortex_class, cortex_class); strcpy(params_d.cortex_class, cortex_class);
strcpy(params_d.cortex_gen, cortex_gen);
#endif #endif
} }
...@@ -1531,6 +1533,7 @@ const tw_optdef app_opt [] = ...@@ -1531,6 +1533,7 @@ const tw_optdef app_opt [] =
#ifdef ENABLE_CORTEX_PYTHON #ifdef ENABLE_CORTEX_PYTHON
TWOPT_CHAR("cortex-file", cortex_file, "Python file (without .py) containing the CoRtEx translation class"), TWOPT_CHAR("cortex-file", cortex_file, "Python file (without .py) containing the CoRtEx translation class"),
TWOPT_CHAR("cortex-class", cortex_class, "Python class implementing the CoRtEx translator"), TWOPT_CHAR("cortex-class", cortex_class, "Python class implementing the CoRtEx translator"),
TWOPT_CHAR("cortex-gen", cortex_gen, "Python function to pre-generate MPI events"),
#endif #endif
TWOPT_END() TWOPT_END()
}; };
......
...@@ -23,12 +23,12 @@ ...@@ -23,12 +23,12 @@
#include <cortex/cortex-python.h> #include <cortex/cortex-python.h>
#endif #endif
#define PROFILE_TYPE cortex_dumpi_profile* #define PROFILE_TYPE cortex_dumpi_profile*
#define UNDUMPI_OPEN cortex_undumpi_open //#define UNDUMPI_OPEN cortex_undumpi_open
#define DUMPI_START_STREAM_READ cortex_dumpi_start_stream_read #define DUMPI_START_STREAM_READ cortex_dumpi_start_stream_read
#define UNDUMPI_CLOSE cortex_undumpi_close #define UNDUMPI_CLOSE cortex_undumpi_close
#else #else
#define PROFILE_TYPE dumpi_profile* #define PROFILE_TYPE dumpi_profile*
#define UNDUMPI_OPEN undumpi_open //#define UNDUMPI_OPEN undumpi_open
#define DUMPI_START_STREAM_READ dumpi_start_stream_read #define DUMPI_START_STREAM_READ dumpi_start_stream_read
#define UNDUMPI_CLOSE undumpi_close #define UNDUMPI_CLOSE undumpi_close
#endif #endif
...@@ -646,7 +646,11 @@ int dumpi_trace_nw_workload_load(const char* params, int app_id, int rank) ...@@ -646,7 +646,11 @@ int dumpi_trace_nw_workload_load(const char* params, int app_id, int rank)
else else
sprintf(file_name, "%s%d.bin", dumpi_params->file_name, rank); sprintf(file_name, "%s%d.bin", dumpi_params->file_name, rank);
#ifdef ENABLE_CORTEX #ifdef ENABLE_CORTEX
if(strcmp(dumpi_params->file_name,"none") == 0) {
profile = cortex_undumpi_open(NULL, app_id, dumpi_params->num_net_traces, rank);
} else {
profile = cortex_undumpi_open(file_name, app_id, dumpi_params->num_net_traces, rank); profile = cortex_undumpi_open(file_name, app_id, dumpi_params->num_net_traces, rank);
}
#else #else
profile = undumpi_open(file_name); profile = undumpi_open(file_name);
#endif #endif
...@@ -728,7 +732,11 @@ int dumpi_trace_nw_workload_load(const char* params, int app_id, int rank) ...@@ -728,7 +732,11 @@ int dumpi_trace_nw_workload_load(const char* params, int app_id, int rank)
#ifdef ENABLE_CORTEX #ifdef ENABLE_CORTEX
#ifdef ENABLE_CORTEX_PYTHON #ifdef ENABLE_CORTEX_PYTHON
if(dumpi_params->cortex_script[0] != 0) {
libundumpi_populate_callbacks(CORTEX_PYTHON_TRANSLATION, transarr); libundumpi_populate_callbacks(CORTEX_PYTHON_TRANSLATION, transarr);
} else {
libundumpi_populate_callbacks(CORTEX_MPICH_TRANSLATION, transarr);
}
#else #else
libundumpi_populate_callbacks(CORTEX_MPICH_TRANSLATION, transarr); libundumpi_populate_callbacks(CORTEX_MPICH_TRANSLATION, transarr);
#endif #endif
...@@ -738,7 +746,16 @@ int dumpi_trace_nw_workload_load(const char* params, int app_id, int rank) ...@@ -738,7 +746,16 @@ int dumpi_trace_nw_workload_load(const char* params, int app_id, int rank)
//dumpi_free_header(trace_header); //dumpi_free_header(trace_header);
#ifdef ENABLE_CORTEX_PYTHON #ifdef ENABLE_CORTEX_PYTHON
cortex_python_set_module(dumpi_params->cortex_script,dumpi_params->cortex_class); if(dumpi_params->cortex_script[0] != 0) {
if(dumpi_params->cortex_class[0] != 0) {
cortex_python_set_module(dumpi_params->cortex_script, dumpi_params->cortex_class);
} else {
cortex_python_set_module(dumpi_params->cortex_script, NULL);
}
if(dumpi_params->cortex_gen[0] != 0) {
cortex_python_call_generator(profile, dumpi_params->cortex_gen);
}
}
#endif #endif
int finalize_reached = 0; int finalize_reached = 0;
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment