X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/5c9583c94b9cef3f02ffec69b6cc245b1739f97e..efa1f86e31adca3c57e9d0135b2f6ebdbabb0878:/src/smpi/include/private.hpp diff --git a/src/smpi/include/private.hpp b/src/smpi/include/private.hpp index 62da58d7d9..ca7e3abdf8 100644 --- a/src/smpi/include/private.hpp +++ b/src/smpi/include/private.hpp @@ -26,6 +26,7 @@ constexpr unsigned MPI_REQ_RMA = 0x200; constexpr unsigned MPI_REQ_ACCUMULATE = 0x400; constexpr unsigned MPI_REQ_GENERALIZED = 0x800; constexpr unsigned MPI_REQ_COMPLETE = 0x1000; +constexpr unsigned MPI_REQ_BSEND = 0x2000; enum class SmpiProcessState { UNINITIALIZED, INITIALIZING, INITIALIZED /*(=MPI_Init called)*/, FINALIZED }; @@ -38,10 +39,12 @@ constexpr int COLL_TAG_ALLGATHERV = -667; constexpr int COLL_TAG_BARRIER = -778; constexpr int COLL_TAG_REDUCE_SCATTER = -889; constexpr int COLL_TAG_ALLTOALLV = -1000; +constexpr int COLL_TAG_ALLTOALLW = -1020; constexpr int COLL_TAG_ALLTOALL = -1112; constexpr int COLL_TAG_GATHERV = -2223; constexpr int COLL_TAG_BCAST = -3334; constexpr int COLL_TAG_ALLREDUCE = -4445; + // SMPI_RMA_TAG has to be the smallest one, as it will be decremented for accumulate ordering. constexpr int SMPI_RMA_TAG = -6666; @@ -56,10 +59,11 @@ extern XBT_PUBLIC int mpi_statuses_ignore_; #define FORT_ADDR(addr, val, val2) \ (((void *)(addr) == (void*) &(val2)) \ ? (val) : (void *)(addr)) -#define FORT_BOTTOM(addr) FORT_ADDR(addr, MPI_BOTTOM, mpi_bottom_) -#define FORT_IN_PLACE(addr) FORT_ADDR(addr, MPI_IN_PLACE, mpi_in_place_) -#define FORT_STATUS_IGNORE(addr) static_cast(FORT_ADDR(addr, MPI_STATUS_IGNORE, mpi_status_ignore_)) -#define FORT_STATUSES_IGNORE(addr) static_cast(FORT_ADDR(addr, MPI_STATUSES_IGNORE, mpi_statuses_ignore_)) +#define FORT_BOTTOM(addr) FORT_ADDR((addr), MPI_BOTTOM, mpi_bottom_) +#define FORT_IN_PLACE(addr) FORT_ADDR((addr), MPI_IN_PLACE, mpi_in_place_) +#define FORT_STATUS_IGNORE(addr) static_cast(FORT_ADDR((addr), MPI_STATUS_IGNORE, mpi_status_ignore_)) +#define FORT_STATUSES_IGNORE(addr) \ + static_cast(FORT_ADDR((addr), MPI_STATUSES_IGNORE, mpi_statuses_ignore_)) extern XBT_PRIVATE MPI_Comm MPI_COMM_UNINITIALIZED; @@ -73,10 +77,10 @@ XBT_PRIVATE simgrid::smpi::ActorExt* smpi_process(); XBT_PRIVATE simgrid::smpi::ActorExt* smpi_process_remote(simgrid::s4u::ActorPtr actor); XBT_PRIVATE int smpi_get_universe_size(); -XBT_PRIVATE void smpi_deployment_register_process(const std::string& instance_id, int rank, - simgrid::s4u::ActorPtr actor); +XBT_PRIVATE void smpi_deployment_register_process(const std::string& instance_id, int rank, simgrid::s4u::Actor* actor); +XBT_PRIVATE void smpi_deployment_unregister_process(const std::string& instance_id); + XBT_PRIVATE MPI_Comm* smpi_deployment_comm_world(const std::string& instance_id); -XBT_PRIVATE simgrid::s4u::Barrier* smpi_deployment_finalization_barrier(const std::string& instance_id); XBT_PRIVATE void smpi_deployment_cleanup_instances(); XBT_PRIVATE void smpi_comm_copy_buffer_callback(simgrid::kernel::activity::CommImpl* comm, void* buff, @@ -86,8 +90,6 @@ XBT_PRIVATE void smpi_comm_null_copy_buffer_callback(simgrid::kernel::activity:: size_t buff_size); XBT_PRIVATE int smpi_enabled(); -XBT_PRIVATE void smpi_global_init(); -XBT_PRIVATE void smpi_global_destroy(); XBT_PRIVATE double smpi_mpi_wtime(); XBT_PRIVATE void smpi_mpi_init(); @@ -109,6 +111,7 @@ XBT_PRIVATE void smpi_bench_destroy(); XBT_PRIVATE void smpi_bench_begin(); XBT_PRIVATE void smpi_bench_end(); XBT_PRIVATE void smpi_shared_destroy(); +XBT_PRIVATE double smpi_adjust_comp_speed(); XBT_PRIVATE unsigned char* smpi_get_tmp_sendbuffer(size_t size); XBT_PRIVATE unsigned char* smpi_get_tmp_recvbuffer(size_t size); @@ -341,12 +344,12 @@ void mpi_graph_neighbors_count_(int* comm, int* rank, int* nneighbors, int* ierr void mpi_graphdims_get_(int* comm, int* nnodes, int* nedges, int* ierr); void mpi_topo_test_(int* comm, int* top_type, int* ierr); void mpi_error_class_(int* errorcode, int* errorclass, int* ierr); -void mpi_errhandler_create_(void* function, void* errhandler, int* ierr); -void mpi_errhandler_free_(void* errhandler, int* ierr); -void mpi_errhandler_get_(int* comm, void* errhandler, int* ierr); -void mpi_errhandler_set_(int* comm, void* errhandler, int* ierr); -void mpi_comm_set_errhandler_(int* comm, void* errhandler, int* ierr); -void mpi_comm_get_errhandler_(int* comm, void* errhandler, int* ierr); +void mpi_errhandler_create_(void* function, int* errhandler, int* ierr); +void mpi_errhandler_free_(int* errhandler, int* ierr); +void mpi_errhandler_get_(int* comm, int* errhandler, int* ierr); +void mpi_errhandler_set_(int* comm, int* errhandler, int* ierr); +void mpi_comm_set_errhandler_(int* comm, int* errhandler, int* ierr); +void mpi_comm_get_errhandler_(int* comm, int* errhandler, int* ierr); void mpi_type_contiguous_(int* count, int* old_type, int* newtype, int* ierr); void mpi_cancel_(int* request, int* ierr); void mpi_buffer_attach_(void* buffer, int* size, int* ierr); @@ -407,7 +410,7 @@ void mpi_comm_split_type_(int* comm, int* split_type, int* key, int* info, int* void mpi_comm_set_info_(int* comm, int* info, int* ierr); void mpi_comm_get_info_(int* comm, int* info, int* ierr); void mpi_info_get_(int* info, char* key, int* valuelen, char* value, int* flag, int* ierr, unsigned int keylen); -void mpi_comm_create_errhandler_(void* function, void* errhandler, int* ierr); +void mpi_comm_create_errhandler_(void* function, int* errhandler, int* ierr); void mpi_add_error_class_(int* errorclass, int* ierr); void mpi_add_error_code_(int* errorclass, int* errorcode, int* ierr); void mpi_add_error_string_(int* errorcode, char* string, int* ierr); @@ -481,4 +484,6 @@ enum class SmpiPrivStrategies { NONE = 0, MMAP = 1, DLOPEN = 2, DEFAULT = DLOPEN extern XBT_PRIVATE SmpiPrivStrategies smpi_privatize_global_variables; +XBT_PRIVATE void private_execute_flops(double flops); + #endif