X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/9d7537a900d7a00156eda13f5fd6ec26b10eb242..bf1edfe6e3a70b02a0032a3fceb7863f0117d069:/src/smpi/private.h diff --git a/src/smpi/private.h b/src/smpi/private.h index 642ddee771..651841cdd0 100644 --- a/src/smpi/private.h +++ b/src/smpi/private.h @@ -26,6 +26,7 @@ typedef struct s_smpi_process_data *smpi_process_data_t; #define RECV_DELETE 0x10 #define ISEND 0x20 #define SSEND 0x40 +#define PREPARED 0x80 // this struct is here to handle the problem of non-contignous data // for each such structure these function should be implemented (vector // index hvector hindex struct) @@ -47,6 +48,20 @@ typedef struct s_smpi_mpi_datatype{ int in_use; } s_smpi_mpi_datatype_t; + +#define COLL_TAG_REDUCE -112 +#define COLL_TAG_SCATTER -223 +#define COLL_TAG_SCATTERV -334 +#define COLL_TAG_GATHER -445 +#define COLL_TAG_ALLGATHER -556 +#define COLL_TAG_ALLGATHERV -667 +#define COLL_TAG_BARRIER -778 +#define COLL_TAG_REDUCE_SCATTER -889 +#define COLL_TAG_ALLTOALLV -1000 +#define COLL_TAG_ALLTOALL -1112 +#define COLL_TAG_GATHERV -2223 +#define COLL_TAG_BCAST -3334 +#define COLL_TAG_ALLREDUCE -4445 //***************************************************************************************** typedef struct s_smpi_mpi_request { @@ -82,6 +97,7 @@ typedef struct s_smpi_mpi_request { void smpi_process_init(int *argc, char ***argv); void smpi_process_destroy(void); void smpi_process_finalize(void); +int smpi_process_finalized(void); smpi_process_data_t smpi_process_data(void); smpi_process_data_t smpi_process_remote_data(int index); @@ -114,7 +130,7 @@ void smpi_datatype_use(MPI_Datatype type); void smpi_datatype_unuse(MPI_Datatype type); int smpi_datatype_contiguous(int count, MPI_Datatype old_type, - MPI_Datatype* new_type); + MPI_Datatype* new_type, MPI_Aint lb); int smpi_datatype_vector(int count, int blocklen, int stride, MPI_Datatype old_type, MPI_Datatype* new_type); @@ -135,11 +151,13 @@ void smpi_datatype_commit(MPI_Datatype* datatype); void smpi_empty_status(MPI_Status * status); MPI_Op smpi_op_new(MPI_User_function * function, int commute); +int smpi_op_is_commute(MPI_Op op); void smpi_op_destroy(MPI_Op op); void smpi_op_apply(MPI_Op op, void *invec, void *inoutvec, int *len, MPI_Datatype * datatype); MPI_Group smpi_group_new(int size); +MPI_Group smpi_group_copy(MPI_Group origin); void smpi_group_destroy(MPI_Group group); void smpi_group_set_mapping(MPI_Group group, int index, int rank); int smpi_group_index(MPI_Group group, int rank); @@ -156,6 +174,8 @@ int smpi_comm_size(MPI_Comm comm); void smpi_comm_get_name(MPI_Comm comm, char* name, int* len); int smpi_comm_rank(MPI_Comm comm); MPI_Comm smpi_comm_split(MPI_Comm comm, int color, int key); +void smpi_comm_use(MPI_Comm comm); +void smpi_comm_unuse(MPI_Comm comm); MPI_Request smpi_mpi_send_init(void *buf, int count, MPI_Datatype datatype, int dst, int tag, MPI_Comm comm); @@ -210,6 +230,8 @@ void smpi_mpi_barrier(MPI_Comm comm); void smpi_mpi_gather(void *sendbuf, int sendcount, MPI_Datatype sendtype, void *recvbuf, int recvcount, MPI_Datatype recvtype, int root, MPI_Comm comm); +void smpi_mpi_reduce_scatter(void *sendbuf, void *recvbuf, int *recvcounts, + MPI_Datatype datatype, MPI_Op op, MPI_Comm comm); void smpi_mpi_gatherv(void *sendbuf, int sendcount, MPI_Datatype sendtype, void *recvbuf, int *recvcounts, int *displs, MPI_Datatype recvtype, int root, MPI_Comm comm); @@ -234,6 +256,8 @@ void smpi_mpi_allreduce(void *sendbuf, void *recvbuf, int count, MPI_Datatype datatype, MPI_Op op, MPI_Comm comm); void smpi_mpi_scan(void *sendbuf, void *recvbuf, int count, MPI_Datatype datatype, MPI_Op op, MPI_Comm comm); +void smpi_mpi_exscan(void *sendbuf, void *recvbuf, int count, + MPI_Datatype datatype, MPI_Op op, MPI_Comm comm); void nary_tree_bcast(void *buf, int count, MPI_Datatype datatype, int root, MPI_Comm comm, int arity);