X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/cda303b7f7d0015dc738b9fc967aa91be8c669b0..37f5b9a91a456e44ca9a312f84201b3c562e90c6:/src/smpi/private.h diff --git a/src/smpi/private.h b/src/smpi/private.h index f6e09f612f..24f56708ca 100644 --- a/src/smpi/private.h +++ b/src/smpi/private.h @@ -10,6 +10,7 @@ #include "internal_config.h" #include "xbt.h" #include "xbt/xbt_os_time.h" +#include "xbt/synchro_core.h" #include "simgrid/simix.h" #include "smpi/smpi_interface.h" #include "smpi/smpi.h" @@ -72,6 +73,9 @@ typedef struct s_smpi_mpi_datatype{ #define COLL_TAG_GATHERV -2223 #define COLL_TAG_BCAST -3334 #define COLL_TAG_ALLREDUCE -4445 + +#define MPI_COMM_UNINITIALIZED ((MPI_Comm)-1) + //***************************************************************************************** typedef struct s_smpi_mpi_request { @@ -129,6 +133,7 @@ smpi_process_data_t smpi_process_remote_data(int index); void smpi_process_set_user_data(void *); void* smpi_process_get_user_data(void); int smpi_process_count(void); +MPI_Comm smpi_process_comm_world(void); smx_rdv_t smpi_process_mailbox(void); smx_rdv_t smpi_process_remote_mailbox(int index); smx_rdv_t smpi_process_mailbox_small(void); @@ -139,6 +144,12 @@ double smpi_process_simulated_elapsed(void); void smpi_process_set_sampling(int s); int smpi_process_get_sampling(void); +void smpi_deployment_register_process(const char* instance_id, int rank, int index, MPI_Comm**, xbt_bar_t*); +void smpi_deployment_cleanup_instances(void); + +void smpi_comm_copy_buffer_callback(smx_action_t comm, + void *buff, size_t buff_size); + void print_request(const char *message, MPI_Request request); void smpi_global_init(void); @@ -315,10 +326,20 @@ int smpi_coll_basic_alltoallv(void *sendbuf, int *sendcounts, // utilities extern double smpi_cpu_threshold; extern double smpi_running_power; +extern int smpi_privatize_global_variables; +extern char* start_data_exe; //start of the data+bss segment of the executable +extern int size_data_exe; //size of the data+bss segment of the executable + + +void switch_data_segment(int); +void smpi_get_executable_global_size(void); +void smpi_initialize_global_memory_segments(void); +void smpi_destroy_global_memory_segments(void); void smpi_bench_destroy(void); void smpi_bench_begin(void); void smpi_bench_end(void); + // f77 wrappers void mpi_init_(int*); void mpi_finalize_(int*); @@ -581,6 +602,11 @@ void TRACE_smpi_collective_out(int rank, int root, const char *operation); void TRACE_smpi_computing_init(int rank); void TRACE_smpi_computing_out(int rank); void TRACE_smpi_computing_in(int rank, instr_extra_data extra); +void TRACE_smpi_sleeping_init(int rank); +void TRACE_smpi_sleeping_out(int rank); +void TRACE_smpi_sleeping_in(int rank, instr_extra_data extra); +void TRACE_smpi_testing_out(int rank); +void TRACE_smpi_testing_in(int rank, instr_extra_data extra); void TRACE_smpi_alloc(void); void TRACE_smpi_release(void); void TRACE_smpi_ptp_in(int rank, int src, int dst, const char *operation, instr_extra_data extra); @@ -593,5 +619,8 @@ void TRACE_smpi_finalize(int rank); const char* encode_datatype(MPI_Datatype datatype); +// TODO, make this static and expose it more cleanly +extern void** mappings; +extern int loaded_page; #endif