- Timestamp:
- 06/02/17 17:53:25 (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
XIOS/dev/branch_yushan_merged/extern/src_ep_dev/ep_wait.cpp
r1149 r1153 58 58 if(request->type == 3) 59 59 { 60 ::MPI_Request mpi_request = static_cast< ::MPI_Request >(request->mpi_request);60 ::MPI_Request *mpi_request = static_cast< ::MPI_Request* >(&(request->mpi_request)); 61 61 ::MPI_Status mpi_status; 62 ::MPI_Wait(&mpi_request, &mpi_status); 62 ::MPI_Errhandler_set(MPI_COMM_WORLD_STD, MPI_ERRORS_RETURN); 63 int error_code = ::MPI_Wait(mpi_request, &mpi_status); 64 if (error_code != MPI_SUCCESS) { 65 66 char error_string[BUFSIZ]; 67 int length_of_error_string, error_class; 68 69 ::MPI_Error_class(error_code, &error_class); 70 ::MPI_Error_string(error_class, error_string, &length_of_error_string); 71 printf("%s\n", error_string); 72 } 73 63 74 64 75 status->mpi_status = new ::MPI_Status(mpi_status); … … 81 92 int MPI_Waitall(int count, MPI_Request *array_of_requests, MPI_Status *array_of_statuses) 82 93 { 83 int dest_rank; 84 MPI_Comm_rank(MPI_COMM_WORLD, &dest_rank); 94 //int dest_rank; 95 //MPI_Comm_rank(MPI_COMM_WORLD, &dest_rank); 96 //printf("proc %d enters waitall\n", dest_rank); 85 97 86 98 int finished = 0; … … 100 112 if(array_of_requests[i].type != 2) // isend or imrecv 101 113 { 102 //MPI_Wait(&array_of_requests[i], &array_of_statuses[i]);103 int tested=false;104 while(!tested) MPI_Test(&array_of_requests[i], &tested, &array_of_statuses[i]);114 MPI_Wait(&array_of_requests[i], &array_of_statuses[i]); 115 //int tested=false; 116 //while(!tested) MPI_Test(&array_of_requests[i], &tested, &array_of_statuses[i]); 105 117 finished++; 106 118 finished_index[i] = true; … … 127 139 } 128 140 } 141 //printf("proc %d exits waitall\n", dest_rank); 129 142 return MPI_SUCCESS; 130 143 } /* end of mpi_waitall*/
Note: See TracChangeset
for help on using the changeset viewer.