Ignore:
Timestamp:
06/02/17 17:53:25 (7 years ago)
Author:
yushan
Message:

save modif

File:
1 edited

Legend:

Unmodified
Added
Removed
  • XIOS/dev/branch_yushan_merged/extern/src_ep_dev/ep_wait.cpp

    r1149 r1153  
    5858    if(request->type == 3) 
    5959    { 
    60       ::MPI_Request mpi_request = static_cast< ::MPI_Request >(request->mpi_request); 
     60      ::MPI_Request *mpi_request = static_cast< ::MPI_Request* >(&(request->mpi_request)); 
    6161      ::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       
    6374 
    6475      status->mpi_status = new ::MPI_Status(mpi_status); 
     
    8192  int MPI_Waitall(int count, MPI_Request *array_of_requests, MPI_Status *array_of_statuses) 
    8293  { 
    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); 
    8597 
    8698    int finished = 0; 
     
    100112          if(array_of_requests[i].type != 2) // isend or imrecv 
    101113          {       
    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]); 
    105117            finished++; 
    106118            finished_index[i] = true; 
     
    127139      }     
    128140    } 
     141    //printf("proc %d exits waitall\n", dest_rank); 
    129142    return MPI_SUCCESS; 
    130143  }  /* end of mpi_waitall*/ 
Note: See TracChangeset for help on using the changeset viewer.