51 char * conf_path = getenv(
"MALP_CONF");
109 #if MPMD_SUPPORTED==0
122 if( (ret = PMPI_Init_thread(argc, argv, required, provided)) != MPI_SUCCESS )
126 #if MPMD_SUPPORTED==0
132 char *prog_name = NULL;
136 prog_name = (*argv)[0];
141 prog_name =
"Program";
144 char ** new_argv = malloc( 2 *
sizeof(
char * ) );
151 new_argv[0] = strdup( prog_name );
177 int displays_banner = 0;
179 if(!strcmp(desc->
name,
"Analyzer"))
185 if( (rank == current_dest->
root_id)
189 fprintf(stderr,
"\033[1;31m=====================================================\033[0m\n");
190 fprintf(stderr,
"\033[1;31m# # ######## # #######\033[0m\n");
191 fprintf(stderr,
"\033[1;31m# # # # # # # # #\033[0m\n");
192 fprintf(stderr,
"\033[1;31m# # # # # # # #\033[0m\n");
193 fprintf(stderr,
"\033[1;31m# # ######## # #######\033[0m\n");
194 fprintf(stderr,
"\033[1;31m# # # # # #\033[0m\n");
195 fprintf(stderr,
"\033[1;31m# # # # # #\033[0m\n");
196 fprintf(stderr,
"\033[1;31m# # # # ####### #\033[0m\n");
197 fprintf(stderr,
"\033[1;31m=============================================== \033[36m%s\033[0m \033[1;31m=\033[0m\n",
MALP_VERSION);
211 printf(
"Failed to initialize stream infos\n");
268 ret = PMPI_Finalize();
static int VMPI_Set_trace_trampoline(char *trampoline_partition, int(*vmpi_trampoline)(int argc, char **argv))
static int TA_Conf_get_key_bool(TA_Conf_key_t key)
Get a configuration parameter value of type bool.
char name[200]
Name of the partition (could be NONE)
void POSIX_profile_render()
int VMPI_Release()
Releases VMPI.
void Config_Setup(int rank)
void sync_mpi()
Entry point to be used to perform time sync of every MPI Processes.
void Timer_Init_scale(unsigned int(*real_usleep)(unsigned int))
Timer_Init_scale.
static MPI_Comm VMPI_Get_partition_comm()
Returns current partition's communicator.
void Render_POSIX_profile()
void POSIX_profile_reduce()
void Event_Packer_release()
Releases the event packer.
static void Stream_Infos_leave_mpi()
Indicates to the current Stream_Infos (if any) that we are leaving a MPI call.
struct Stream_Infos * Stream_MGR_new_stream(struct Stream_Descriptor *parent, Stream_type type)
Adds a stream into the current stream manager.
int analyzer_main(int argc, char **argv)
void Instrumentation_Destructor()
void TA_Conf_load(char *source)
Load and use a file to set the Analyzer configuration.
Structure describing a stream.
void Instrumentation_Constructor()
Structure holding partitions descriptions.
static const char * MALP_VERSION
int MPI_Init_thread(int *argc, char ***argv, int required, int *provided)
static int is_an_mpi_program
void Stream_Manager_init()
Initialises the manager for current MPI process.
void TA_Conf_init_default()
Initialisation of the Trace_Collector with default options.
#define TEST_LOAD_SYMBOL(a)
int root_id
Identifier of the root of the partition.
void Stream_MGR_end_stream()
Signals end of stream.
void TA_Conf_init_from_env()
Initialisation of config from environment.
static VMPI_Partition_desc * VMPI_Get_desc_by_id(int id)
Find a descriptions by its ID.
#define TA_Conf_dispatch()
Start broadcasting for the analyzer.
static void Stream_Infos_enter_mpi()
Indicates to the current Stream_Infos (if any) that we are enterning a MPI call.
static int VMPI_Get_partition_id()
Returns the unique ID of the current partition.
void Trace_Comm_init()
Initializes the trace communicator.
void Event_Packer_init()
Initializes the event packer, maps current process to existing Analyser or IO_WRITE partition and ini...
static VMPI_Partition_desc * VMPI_Get_desc()
Returns current partition's descriptions.
int MPI_Init(int *argc, char ***argv)
int VMPI_Init(int *argc, char ***argv)
Initializes VMPI.
static void Stream_infos_set(struct Stream_Infos *sd)
Setter on the current Stream_Infos.
void Stream_Manager_release()
Releases the manager for current MPI process (including all streams )
void Trace_Comm_release()
Releases the trace communicator.