Ignore:
Timestamp:
05/03/17 16:42:22 (7 years ago)
Author:
yushan
Message:

bug corrected in MPI_Gatherv

File:
1 edited

Legend:

Unmodified
Added
Removed
  • XIOS/dev/branch_yushan/extern/src_ep_dev/ep_gatherv.cpp

    r1056 r1115  
    8989          #pragma omp critical (read_from_buffer) 
    9090          { 
    91             copy(buffer, buffer+min(BUFFER_SIZE, count-j), recv_buf+j+displs[k]); 
     91            copy(buffer, buffer+min(BUFFER_SIZE, recvcounts[k]-j), recv_buf+j+displs[k]); 
    9292          } 
    9393        } 
     
    133133          #pragma omp critical (read_from_buffer) 
    134134          { 
    135             copy(buffer, buffer+min(BUFFER_SIZE, count-j), recv_buf+j+displs[k]); 
     135            copy(buffer, buffer+min(BUFFER_SIZE, recvcounts[k]-j), recv_buf+j+displs[k]); 
    136136          } 
    137137        } 
     
    177177          #pragma omp critical (read_from_buffer) 
    178178          { 
    179             copy(buffer, buffer+min(BUFFER_SIZE, count-j), recv_buf+j+displs[k]); 
     179            copy(buffer, buffer+min(BUFFER_SIZE, recvcounts[k]-j), recv_buf+j+displs[k]); 
    180180          } 
    181181        } 
     
    221221          #pragma omp critical (read_from_buffer) 
    222222          { 
    223             copy(buffer, buffer+min(BUFFER_SIZE, count-j), recv_buf+j+displs[k]); 
     223            copy(buffer, buffer+min(BUFFER_SIZE, recvcounts[k]-j), recv_buf+j+displs[k]); 
    224224          } 
    225225        } 
     
    265265          #pragma omp critical (read_from_buffer) 
    266266          { 
    267             copy(buffer, buffer+min(BUFFER_SIZE, count-j), recv_buf+j+displs[k]); 
     267            copy(buffer, buffer+min(BUFFER_SIZE, recvcounts[k]-j), recv_buf+j+displs[k]); 
    268268          } 
    269269        } 
     
    309309          #pragma omp critical (read_from_buffer) 
    310310          { 
    311             copy(buffer, buffer+min(BUFFER_SIZE, count-j), recv_buf+j+displs[k]); 
     311            copy(buffer, buffer+min(BUFFER_SIZE, recvcounts[k]-j), recv_buf+j+displs[k]); 
    312312          } 
    313313        } 
     
    485485     
    486486 
    487     assert(accumulate(recvcounts, recvcounts+ep_size-1, 0) == displs[ep_size-1]); // Only for contunuous gather. 
     487    assert(accumulate(recvcounts, recvcounts+ep_size-1, 0) == displs[ep_size-1]); // Only for continuous gather. 
    488488 
    489489 
     
    498498      int buffer_size = accumulate(recvcounts+ep_rank, recvcounts+ep_rank+num_ep, 0); 
    499499      local_gather_recvbuf = new void*[datasize*buffer_size]; 
     500      printf("buffersize = %d\n", buffer_size); 
    500501    } 
    501502 
Note: See TracChangeset for help on using the changeset viewer.