X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/1f32679abc2f9c0cae9e27951b643a0f70d71b3a..004b932fe967a47a2ded3795af9dc069c3de9671:/include/smpi/smpi.h diff --git a/include/smpi/smpi.h b/include/smpi/smpi.h index f27f87907a..3d2ec2b9d0 100644 --- a/include/smpi/smpi.h +++ b/include/smpi/smpi.h @@ -16,6 +16,9 @@ #include #include #include +#include "simgrid/datatypes.h" + +#include "include/smpi/forward.hpp" #ifdef _WIN32 #define MPI_CALL(type,name,args) \ @@ -175,8 +178,8 @@ SG_BEGIN_DECL() #define MPI_COMM_TYPE_SHARED 1 #define MPI_WIN_NULL ((MPI_Win)NULL) -#define MPI_VERSION 1 -#define MPI_SUBVERSION 1 +#define MPI_VERSION 2 +#define MPI_SUBVERSION 2 #define MPI_UNWEIGHTED (int *)0 #define MPI_ARGV_NULL (char **)0 #define MPI_ARGVS_NULL (char ***)0 @@ -245,8 +248,7 @@ typedef struct { int count; } MPI_Status; -struct s_smpi_mpi_win; -typedef struct s_smpi_mpi_win* MPI_Win; +typedef SMPI_Win* MPI_Win; struct s_smpi_mpi_info; typedef struct s_smpi_mpi_info *MPI_Info; @@ -360,25 +362,21 @@ XBT_PUBLIC_DATA( MPI_Op ) MPI_BXOR; //For accumulate XBT_PUBLIC_DATA( MPI_Op ) MPI_REPLACE; -struct s_smpi_mpi_topology; -typedef struct s_smpi_mpi_topology *MPI_Topology; - -struct s_smpi_mpi_group; -typedef struct s_smpi_mpi_group *MPI_Group; +typedef SMPI_Topology *MPI_Topology; + +typedef SMPI_Group* MPI_Group; #define MPI_GROUP_NULL ((MPI_Group)NULL) XBT_PUBLIC_DATA( MPI_Group ) MPI_GROUP_EMPTY; -struct s_smpi_mpi_communicator; -typedef struct s_smpi_mpi_communicator *MPI_Comm; +typedef SMPI_Comm *MPI_Comm; #define MPI_COMM_NULL ((MPI_Comm)NULL) XBT_PUBLIC_DATA( MPI_Comm ) MPI_COMM_WORLD; #define MPI_COMM_SELF smpi_process_comm_self() -struct s_smpi_mpi_request; -typedef struct s_smpi_mpi_request *MPI_Request; +typedef SMPI_Request *MPI_Request; #define MPI_REQUEST_NULL ((MPI_Request)NULL) #define MPI_FORTRAN_REQUEST_NULL -1 @@ -454,6 +452,7 @@ MPI_CALL(XBT_PUBLIC(int), MPI_Comm_group, (MPI_Comm comm, MPI_Group * group)); MPI_CALL(XBT_PUBLIC(int), MPI_Comm_compare, (MPI_Comm comm1, MPI_Comm comm2, int *result)); MPI_CALL(XBT_PUBLIC(int), MPI_Comm_create, (MPI_Comm comm, MPI_Group group, MPI_Comm * newcomm)); +MPI_CALL(XBT_PUBLIC(int), MPI_Comm_create_group, (MPI_Comm comm, MPI_Group group, int tag, MPI_Comm * newcomm)); MPI_CALL(XBT_PUBLIC(int), MPI_Comm_free, (MPI_Comm * comm)); MPI_CALL(XBT_PUBLIC(int), MPI_Comm_disconnect, (MPI_Comm * comm)); MPI_CALL(XBT_PUBLIC(int), MPI_Comm_split, (MPI_Comm comm, int color, int key, MPI_Comm* comm_out)); @@ -823,6 +822,13 @@ XBT_PUBLIC(void) smpi_sample_1(int global, const char *file, int line, int iters XBT_PUBLIC(int) smpi_sample_2(int global, const char *file, int line); XBT_PUBLIC(void) smpi_sample_3(int global, const char *file, int line); +/** + * Need a public setter for SMPI copy_callback function, so users can define + * their own while still using default SIMIX_copy_callback for MSG copies. + */ +XBT_PUBLIC(void) smpi_comm_set_copy_data_callback(void (*callback) (smx_activity_t, void*, size_t)); + + /** * Functions for call location tracing. These functions will be * called from the user's application! (With the __FILE__ and __LINE__ values