X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/c5fec1387eeba572795dbc12a341f8350325abc9..5bc3597e1513c7b94497ae0ea819e5fa2e28058a:/src/smpi/bindings/smpi_pmpi_win.cpp diff --git a/src/smpi/bindings/smpi_pmpi_win.cpp b/src/smpi/bindings/smpi_pmpi_win.cpp index aa82058617..03b8438e66 100644 --- a/src/smpi/bindings/smpi_pmpi_win.cpp +++ b/src/smpi/bindings/smpi_pmpi_win.cpp @@ -166,9 +166,9 @@ int PMPI_Win_fence( int assert, MPI_Win win){ retval = MPI_ERR_WIN; } else { int rank = smpi_process()->index(); - TRACE_smpi_collective_in(rank, -1, __FUNCTION__, nullptr); + TRACE_smpi_collective_in(rank, __FUNCTION__, nullptr); retval = win->fence(assert); - TRACE_smpi_collective_out(rank, -1, __FUNCTION__); + TRACE_smpi_collective_out(rank, __FUNCTION__); } smpi_bench_begin(); return retval; @@ -190,19 +190,19 @@ int PMPI_Get( void *origin_addr, int origin_count, MPI_Datatype origin_datatype, } else if ((origin_count < 0 || target_count < 0) || (origin_addr==nullptr && origin_count > 0)){ retval = MPI_ERR_COUNT; - } else if ((not origin_datatype->is_valid()) || (not target_datatype->is_valid())) { + } else if (((origin_datatype == MPI_DATATYPE_NULL) || (target_datatype == MPI_DATATYPE_NULL)) || + ((not origin_datatype->is_valid()) || (not target_datatype->is_valid()))) { retval = MPI_ERR_TYPE; } else { int rank = smpi_process()->index(); MPI_Group group; win->get_group(&group); - int src_traced = group->index(target_rank); - TRACE_smpi_ptp_in(rank, src_traced, rank, __FUNCTION__, nullptr); + TRACE_smpi_ptp_in(rank, __FUNCTION__, nullptr); retval = win->get( origin_addr, origin_count, origin_datatype, target_rank, target_disp, target_count, target_datatype); - TRACE_smpi_ptp_out(rank, src_traced, rank, __FUNCTION__); + TRACE_smpi_ptp_out(rank, rank, __FUNCTION__); } smpi_bench_begin(); return retval; @@ -225,7 +225,8 @@ int PMPI_Rget( void *origin_addr, int origin_count, MPI_Datatype origin_datatype } else if ((origin_count < 0 || target_count < 0) || (origin_addr==nullptr && origin_count > 0)){ retval = MPI_ERR_COUNT; - } else if ((not origin_datatype->is_valid()) || (not target_datatype->is_valid())) { + } else if (((origin_datatype == MPI_DATATYPE_NULL) || (target_datatype == MPI_DATATYPE_NULL)) || + ((not origin_datatype->is_valid()) || (not target_datatype->is_valid()))) { retval = MPI_ERR_TYPE; } else if(request == nullptr){ retval = MPI_ERR_REQUEST; @@ -233,13 +234,12 @@ int PMPI_Rget( void *origin_addr, int origin_count, MPI_Datatype origin_datatype int rank = smpi_process()->index(); MPI_Group group; win->get_group(&group); - int src_traced = group->index(target_rank); - TRACE_smpi_ptp_in(rank, src_traced, rank, __FUNCTION__, nullptr); + TRACE_smpi_ptp_in(rank, __FUNCTION__, nullptr); retval = win->get( origin_addr, origin_count, origin_datatype, target_rank, target_disp, target_count, target_datatype, request); - TRACE_smpi_ptp_out(rank, src_traced, rank, __FUNCTION__); + TRACE_smpi_ptp_out(rank, rank, __FUNCTION__); } smpi_bench_begin(); return retval; @@ -261,20 +261,21 @@ int PMPI_Put( void *origin_addr, int origin_count, MPI_Datatype origin_datatype, } else if ((origin_count < 0 || target_count < 0) || (origin_addr==nullptr && origin_count > 0)){ retval = MPI_ERR_COUNT; - } else if ((not origin_datatype->is_valid()) || (not target_datatype->is_valid())) { + } else if (((origin_datatype == MPI_DATATYPE_NULL) || (target_datatype == MPI_DATATYPE_NULL)) || + ((not origin_datatype->is_valid()) || (not target_datatype->is_valid()))) { retval = MPI_ERR_TYPE; } else { int rank = smpi_process()->index(); MPI_Group group; win->get_group(&group); int dst_traced = group->index(target_rank); - TRACE_smpi_ptp_in(rank, rank, dst_traced, __FUNCTION__, nullptr); + TRACE_smpi_ptp_in(rank, __FUNCTION__, nullptr); TRACE_smpi_send(rank, rank, dst_traced, SMPI_RMA_TAG, origin_count*origin_datatype->size()); retval = win->put( origin_addr, origin_count, origin_datatype, target_rank, target_disp, target_count, target_datatype); - TRACE_smpi_ptp_out(rank, rank, dst_traced, __FUNCTION__); + TRACE_smpi_ptp_out(rank, dst_traced, __FUNCTION__); } smpi_bench_begin(); return retval; @@ -297,7 +298,8 @@ int PMPI_Rput( void *origin_addr, int origin_count, MPI_Datatype origin_datatype } else if ((origin_count < 0 || target_count < 0) || (origin_addr==nullptr && origin_count > 0)){ retval = MPI_ERR_COUNT; - } else if ((not origin_datatype->is_valid()) || (not target_datatype->is_valid())) { + } else if (((origin_datatype == MPI_DATATYPE_NULL) || (target_datatype == MPI_DATATYPE_NULL)) || + ((not origin_datatype->is_valid()) || (not target_datatype->is_valid()))) { retval = MPI_ERR_TYPE; } else if(request == nullptr){ retval = MPI_ERR_REQUEST; @@ -306,13 +308,13 @@ int PMPI_Rput( void *origin_addr, int origin_count, MPI_Datatype origin_datatype MPI_Group group; win->get_group(&group); int dst_traced = group->index(target_rank); - TRACE_smpi_ptp_in(rank, rank, dst_traced, __FUNCTION__, nullptr); + TRACE_smpi_ptp_in(rank, __FUNCTION__, nullptr); TRACE_smpi_send(rank, rank, dst_traced, SMPI_RMA_TAG, origin_count*origin_datatype->size()); retval = win->put( origin_addr, origin_count, origin_datatype, target_rank, target_disp, target_count, target_datatype, request); - TRACE_smpi_ptp_out(rank, rank, dst_traced, __FUNCTION__); + TRACE_smpi_ptp_out(rank, dst_traced, __FUNCTION__); } smpi_bench_begin(); return retval; @@ -334,7 +336,8 @@ int PMPI_Accumulate( void *origin_addr, int origin_count, MPI_Datatype origin_da } else if ((origin_count < 0 || target_count < 0) || (origin_addr==nullptr && origin_count > 0)){ retval = MPI_ERR_COUNT; - } else if ((not origin_datatype->is_valid()) || (not target_datatype->is_valid())) { + } else if (((origin_datatype == MPI_DATATYPE_NULL) || (target_datatype == MPI_DATATYPE_NULL)) || + ((not origin_datatype->is_valid()) || (not target_datatype->is_valid()))) { retval = MPI_ERR_TYPE; } else if (op == MPI_OP_NULL) { retval = MPI_ERR_OP; @@ -342,13 +345,11 @@ int PMPI_Accumulate( void *origin_addr, int origin_count, MPI_Datatype origin_da int rank = smpi_process()->index(); MPI_Group group; win->get_group(&group); - int src_traced = group->index(target_rank); - TRACE_smpi_ptp_in(rank, src_traced, rank, __FUNCTION__, nullptr); - + TRACE_smpi_ptp_in(rank, __FUNCTION__, nullptr); retval = win->accumulate( origin_addr, origin_count, origin_datatype, target_rank, target_disp, target_count, target_datatype, op); - TRACE_smpi_ptp_out(rank, src_traced, rank, __FUNCTION__); + TRACE_smpi_ptp_out(rank, rank, __FUNCTION__); } smpi_bench_begin(); return retval; @@ -371,7 +372,8 @@ int PMPI_Raccumulate( void *origin_addr, int origin_count, MPI_Datatype origin_d } else if ((origin_count < 0 || target_count < 0) || (origin_addr==nullptr && origin_count > 0)){ retval = MPI_ERR_COUNT; - } else if ((not origin_datatype->is_valid()) || (not target_datatype->is_valid())) { + } else if (((origin_datatype == MPI_DATATYPE_NULL) || (target_datatype == MPI_DATATYPE_NULL)) || + ((not origin_datatype->is_valid()) || (not target_datatype->is_valid()))) { retval = MPI_ERR_TYPE; } else if (op == MPI_OP_NULL) { retval = MPI_ERR_OP; @@ -381,13 +383,12 @@ int PMPI_Raccumulate( void *origin_addr, int origin_count, MPI_Datatype origin_d int rank = smpi_process()->index(); MPI_Group group; win->get_group(&group); - int src_traced = group->index(target_rank); - TRACE_smpi_ptp_in(rank, src_traced, rank, __FUNCTION__, nullptr); + TRACE_smpi_ptp_in(rank, __FUNCTION__, nullptr); retval = win->accumulate( origin_addr, origin_count, origin_datatype, target_rank, target_disp, target_count, target_datatype, op, request); - TRACE_smpi_ptp_out(rank, src_traced, rank, __FUNCTION__); + TRACE_smpi_ptp_out(rank, rank, __FUNCTION__); } smpi_bench_begin(); return retval; @@ -411,8 +412,8 @@ MPI_Datatype target_datatype, MPI_Op op, MPI_Win win){ (origin_addr==nullptr && origin_count > 0 && op != MPI_NO_OP) || (result_addr==nullptr && result_count > 0)){ retval = MPI_ERR_COUNT; - } else if ((origin_datatype != MPI_DATATYPE_NULL && not origin_datatype->is_valid()) || - (not target_datatype->is_valid()) || (not result_datatype->is_valid())) { + } else if (((target_datatype == MPI_DATATYPE_NULL) || (result_datatype == MPI_DATATYPE_NULL)) || + (((origin_datatype != MPI_DATATYPE_NULL) && (not origin_datatype->is_valid())) || (not target_datatype->is_valid()) || (not result_datatype->is_valid()))) { retval = MPI_ERR_TYPE; } else if (op == MPI_OP_NULL) { retval = MPI_ERR_OP; @@ -420,14 +421,13 @@ MPI_Datatype target_datatype, MPI_Op op, MPI_Win win){ int rank = smpi_process()->index(); MPI_Group group; win->get_group(&group); - int src_traced = group->index(target_rank); - TRACE_smpi_ptp_in(rank, src_traced, rank, __FUNCTION__, nullptr); + TRACE_smpi_ptp_in(rank, __FUNCTION__, nullptr); retval = win->get_accumulate( origin_addr, origin_count, origin_datatype, result_addr, result_count, result_datatype, target_rank, target_disp, target_count, target_datatype, op); - TRACE_smpi_ptp_out(rank, src_traced, rank, __FUNCTION__); + TRACE_smpi_ptp_out(rank, rank, __FUNCTION__); } smpi_bench_begin(); return retval; @@ -453,8 +453,8 @@ MPI_Datatype target_datatype, MPI_Op op, MPI_Win win, MPI_Request* request){ (origin_addr==nullptr && origin_count > 0 && op != MPI_NO_OP) || (result_addr==nullptr && result_count > 0)){ retval = MPI_ERR_COUNT; - } else if ((origin_datatype != MPI_DATATYPE_NULL && not origin_datatype->is_valid()) || - (not target_datatype->is_valid()) || (not result_datatype->is_valid())) { + } else if (((target_datatype == MPI_DATATYPE_NULL) || (result_datatype == MPI_DATATYPE_NULL)) || + (((origin_datatype != MPI_DATATYPE_NULL) && (not origin_datatype->is_valid())) || (not target_datatype->is_valid()) || (not result_datatype->is_valid()))) { retval = MPI_ERR_TYPE; } else if (op == MPI_OP_NULL) { retval = MPI_ERR_OP; @@ -464,14 +464,13 @@ MPI_Datatype target_datatype, MPI_Op op, MPI_Win win, MPI_Request* request){ int rank = smpi_process()->index(); MPI_Group group; win->get_group(&group); - int src_traced = group->index(target_rank); - TRACE_smpi_ptp_in(rank, src_traced, rank, __FUNCTION__, nullptr); + TRACE_smpi_ptp_in(rank, __FUNCTION__, nullptr); retval = win->get_accumulate( origin_addr, origin_count, origin_datatype, result_addr, result_count, result_datatype, target_rank, target_disp, target_count, target_datatype, op, request); - TRACE_smpi_ptp_out(rank, src_traced, rank, __FUNCTION__); + TRACE_smpi_ptp_out(rank, rank, __FUNCTION__); } smpi_bench_begin(); return retval; @@ -497,19 +496,18 @@ int PMPI_Compare_and_swap(void *origin_addr, void *compare_addr, retval = MPI_ERR_ARG; } else if (origin_addr==nullptr || result_addr==nullptr || compare_addr==nullptr){ retval = MPI_ERR_COUNT; - } else if (not datatype->is_valid()) { + } else if ((datatype == MPI_DATATYPE_NULL) || (not datatype->is_valid())) { retval = MPI_ERR_TYPE; } else { int rank = smpi_process()->index(); MPI_Group group; win->get_group(&group); - int src_traced = group->index(target_rank); - TRACE_smpi_ptp_in(rank, src_traced, rank, __FUNCTION__, nullptr); + TRACE_smpi_ptp_in(rank, __FUNCTION__, nullptr); retval = win->compare_and_swap( origin_addr, compare_addr, result_addr, datatype, target_rank, target_disp); - TRACE_smpi_ptp_out(rank, src_traced, rank, __FUNCTION__); + TRACE_smpi_ptp_out(rank, rank, __FUNCTION__); } smpi_bench_begin(); return retval; @@ -524,9 +522,9 @@ int PMPI_Win_post(MPI_Group group, int assert, MPI_Win win){ retval = MPI_ERR_GROUP; } else { int rank = smpi_process()->index(); - TRACE_smpi_collective_in(rank, -1, __FUNCTION__, nullptr); + TRACE_smpi_collective_in(rank, __FUNCTION__, nullptr); retval = win->post(group,assert); - TRACE_smpi_collective_out(rank, -1, __FUNCTION__); + TRACE_smpi_collective_out(rank, __FUNCTION__); } smpi_bench_begin(); return retval; @@ -541,9 +539,9 @@ int PMPI_Win_start(MPI_Group group, int assert, MPI_Win win){ retval = MPI_ERR_GROUP; } else { int rank = smpi_process()->index(); - TRACE_smpi_collective_in(rank, -1, __FUNCTION__, nullptr); + TRACE_smpi_collective_in(rank, __FUNCTION__, nullptr); retval = win->start(group,assert); - TRACE_smpi_collective_out(rank, -1, __FUNCTION__); + TRACE_smpi_collective_out(rank, __FUNCTION__); } smpi_bench_begin(); return retval; @@ -556,11 +554,11 @@ int PMPI_Win_complete(MPI_Win win){ retval = MPI_ERR_WIN; } else { int rank = smpi_process()->index(); - TRACE_smpi_collective_in(rank, -1, __FUNCTION__, nullptr); + TRACE_smpi_collective_in(rank, __FUNCTION__, nullptr); retval = win->complete(); - TRACE_smpi_collective_out(rank, -1, __FUNCTION__); + TRACE_smpi_collective_out(rank, __FUNCTION__); } smpi_bench_begin(); return retval; @@ -573,11 +571,11 @@ int PMPI_Win_wait(MPI_Win win){ retval = MPI_ERR_WIN; } else { int rank = smpi_process()->index(); - TRACE_smpi_collective_in(rank, -1, __FUNCTION__, nullptr); + TRACE_smpi_collective_in(rank, __FUNCTION__, nullptr); retval = win->wait(); - TRACE_smpi_collective_out(rank, -1, __FUNCTION__); + TRACE_smpi_collective_out(rank, __FUNCTION__); } smpi_bench_begin(); return retval; @@ -595,9 +593,9 @@ int PMPI_Win_lock(int lock_type, int rank, int assert, MPI_Win win){ retval = MPI_SUCCESS; } else { int myrank = smpi_process()->index(); - TRACE_smpi_collective_in(myrank, -1, __FUNCTION__, nullptr); + TRACE_smpi_collective_in(myrank, __FUNCTION__, nullptr); retval = win->lock(lock_type,rank,assert); - TRACE_smpi_collective_out(myrank, -1, __FUNCTION__); + TRACE_smpi_collective_out(myrank, __FUNCTION__); } smpi_bench_begin(); return retval; @@ -612,9 +610,9 @@ int PMPI_Win_unlock(int rank, MPI_Win win){ retval = MPI_SUCCESS; } else { int myrank = smpi_process()->index(); - TRACE_smpi_collective_in(myrank, -1, __FUNCTION__, nullptr); + TRACE_smpi_collective_in(myrank, __FUNCTION__, nullptr); retval = win->unlock(rank); - TRACE_smpi_collective_out(myrank, -1, __FUNCTION__); + TRACE_smpi_collective_out(myrank, __FUNCTION__); } smpi_bench_begin(); return retval; @@ -627,9 +625,9 @@ int PMPI_Win_lock_all(int assert, MPI_Win win){ retval = MPI_ERR_WIN; } else { int myrank = smpi_process()->index(); - TRACE_smpi_collective_in(myrank, -1, __FUNCTION__, nullptr); + TRACE_smpi_collective_in(myrank, __FUNCTION__, nullptr); retval = win->lock_all(assert); - TRACE_smpi_collective_out(myrank, -1, __FUNCTION__); + TRACE_smpi_collective_out(myrank, __FUNCTION__); } smpi_bench_begin(); return retval; @@ -642,9 +640,9 @@ int PMPI_Win_unlock_all(MPI_Win win){ retval = MPI_ERR_WIN; } else { int myrank = smpi_process()->index(); - TRACE_smpi_collective_in(myrank, -1, __FUNCTION__, nullptr); + TRACE_smpi_collective_in(myrank, __FUNCTION__, nullptr); retval = win->unlock_all(); - TRACE_smpi_collective_out(myrank, -1, __FUNCTION__); + TRACE_smpi_collective_out(myrank, __FUNCTION__); } smpi_bench_begin(); return retval; @@ -659,9 +657,9 @@ int PMPI_Win_flush(int rank, MPI_Win win){ retval = MPI_SUCCESS; } else { int myrank = smpi_process()->index(); - TRACE_smpi_collective_in(myrank, -1, __FUNCTION__, nullptr); + TRACE_smpi_collective_in(myrank, __FUNCTION__, nullptr); retval = win->flush(rank); - TRACE_smpi_collective_out(myrank, -1, __FUNCTION__); + TRACE_smpi_collective_out(myrank, __FUNCTION__); } smpi_bench_begin(); return retval; @@ -676,9 +674,9 @@ int PMPI_Win_flush_local(int rank, MPI_Win win){ retval = MPI_SUCCESS; } else { int myrank = smpi_process()->index(); - TRACE_smpi_collective_in(myrank, -1, __FUNCTION__, nullptr); + TRACE_smpi_collective_in(myrank, __FUNCTION__, nullptr); retval = win->flush_local(rank); - TRACE_smpi_collective_out(myrank, -1, __FUNCTION__); + TRACE_smpi_collective_out(myrank, __FUNCTION__); } smpi_bench_begin(); return retval; @@ -691,9 +689,9 @@ int PMPI_Win_flush_all(MPI_Win win){ retval = MPI_ERR_WIN; } else { int myrank = smpi_process()->index(); - TRACE_smpi_collective_in(myrank, -1, __FUNCTION__, nullptr); + TRACE_smpi_collective_in(myrank, __FUNCTION__, nullptr); retval = win->flush_all(); - TRACE_smpi_collective_out(myrank, -1, __FUNCTION__); + TRACE_smpi_collective_out(myrank, __FUNCTION__); } smpi_bench_begin(); return retval; @@ -706,9 +704,9 @@ int PMPI_Win_flush_local_all(MPI_Win win){ retval = MPI_ERR_WIN; } else { int myrank = smpi_process()->index(); - TRACE_smpi_collective_in(myrank, -1, __FUNCTION__, nullptr); + TRACE_smpi_collective_in(myrank, __FUNCTION__, nullptr); retval = win->flush_local_all(); - TRACE_smpi_collective_out(myrank, -1, __FUNCTION__); + TRACE_smpi_collective_out(myrank, __FUNCTION__); } smpi_bench_begin(); return retval;