X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/977a3789653e4d793b2401cf3f5fa65dcf6795ba..da4b64609d1b4d1829801004cab5ea40ec8b22f1:/src/smpi/smpi_pmpi.c diff --git a/src/smpi/smpi_pmpi.c b/src/smpi/smpi_pmpi.c index 5d7836022a..d0d8b4bc0d 100644 --- a/src/smpi/smpi_pmpi.c +++ b/src/smpi/smpi_pmpi.c @@ -127,15 +127,7 @@ int PMPI_Abort(MPI_Comm comm, int errorcode) double PMPI_Wtime(void) { - double time; - if (smpi_process_initialized() && !smpi_process_finalized() && !smpi_process_get_sampling()) { - smpi_bench_end(); - time = SIMIX_get_clock(); - smpi_bench_begin(); - } else { - time = SIMIX_get_clock(); - } - return time; + return smpi_mpi_wtime(); } extern double sg_maxmin_precision; @@ -1967,7 +1959,10 @@ int PMPI_Scatter(void *sendbuf, int sendcount, MPI_Datatype sendtype, } else if (((smpi_comm_rank(comm)==root) && (sendtype == MPI_DATATYPE_NULL)) || ((recvbuf !=MPI_IN_PLACE) && (recvtype == MPI_DATATYPE_NULL))) { retval = MPI_ERR_TYPE; - } else { + } else if ((sendbuf == recvbuf) || + ((smpi_comm_rank(comm)==root) && sendcount>0 && (sendbuf == NULL))){ + retval = MPI_ERR_BUFFER; + }else { if (recvbuf == MPI_IN_PLACE) { recvtype=sendtype; @@ -2848,7 +2843,34 @@ int PMPI_Free_mem(void *baseptr){ return MPI_SUCCESS; } +int PMPI_Type_set_name(MPI_Datatype datatype, char * name) +{ + int retval = 0; + if (datatype == MPI_DATATYPE_NULL) { + retval = MPI_ERR_TYPE; + } else if (name == NULL) { + retval = MPI_ERR_ARG; + } else { + smpi_datatype_set_name(datatype, name); + retval = MPI_SUCCESS; + } + return retval; +} + +int PMPI_Type_get_name(MPI_Datatype datatype, char * name, int* len) +{ + int retval = 0; + if (datatype == MPI_DATATYPE_NULL) { + retval = MPI_ERR_TYPE; + } else if (name == NULL) { + retval = MPI_ERR_ARG; + } else { + smpi_datatype_get_name(datatype, name, len); + retval = MPI_SUCCESS; + } + return retval; +} /* The following calls are not yet implemented and will fail at runtime. */ /* Once implemented, please move them above this notice. */ @@ -2858,15 +2880,7 @@ int PMPI_Free_mem(void *baseptr){ return MPI_SUCCESS; \ } -int PMPI_Type_set_name(MPI_Datatype datatype, char * name) -{ - NOT_YET_IMPLEMENTED -} -int PMPI_Type_get_name(MPI_Datatype datatype, char * name, int* len) -{ - NOT_YET_IMPLEMENTED -} int PMPI_Pack_size(int incount, MPI_Datatype datatype, MPI_Comm comm, int* size) { NOT_YET_IMPLEMENTED