Ignore:
Timestamp:
05/31/17 10:51:06 (7 years ago)
Author:
yushan
Message:

bug fixed in mpi_comm_split. Key needs to be specifify.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • XIOS/dev/branch_yushan_merged/extern/remap/src/mapper.cpp

    r1147 r1149  
    270270    MPI_Status *status = new MPI_Status[4*mpiSize]; 
    271271     
     272    MPI_Waitall(nbRecvRequest, recvRequest, status); 
    272273    MPI_Waitall(nbSendRequest, sendRequest, status); 
    273     MPI_Waitall(nbRecvRequest, recvRequest, status); 
     274     
    274275 
    275276    /* for all indices that have been received from requesting ranks: pack values and gradients, then send */ 
     
    300301                    sendNeighIds[rank][j] = sstree.localElements[recvElement[rank][j]].src_id; 
    301302            } 
    302             MPI_Issend(sendValue[rank],  nbRecvElement[rank], MPI_DOUBLE, rank, 0, communicator, &sendRequest[nbSendRequest]); 
     303            MPI_Issend(sendValue[rank], nbRecvElement[rank], MPI_DOUBLE, rank, 0, communicator, &sendRequest[nbSendRequest]); 
    303304            nbSendRequest++; 
    304             MPI_Issend(sendArea[rank],  nbRecvElement[rank], MPI_DOUBLE, rank, 0, communicator, &sendRequest[nbSendRequest]); 
     305            MPI_Issend(sendArea[rank], nbRecvElement[rank], MPI_DOUBLE, rank, 0, communicator, &sendRequest[nbSendRequest]); 
    305306            nbSendRequest++; 
    306307            if (order == 2) 
     
    317318                MPI_Issend(sendNeighIds[rank], 4*nbRecvElement[rank], MPI_INT, rank, 0, communicator, &sendRequest[nbSendRequest]); 
    318319                //ym  --> attention taille GloId 
    319                 nbSendRequest++; 
    320                  
     320                nbSendRequest++;                 
    321321            } 
    322322        } 
     
    345345    } 
    346346     
    347     MPI_Waitall(nbSendRequest, sendRequest, status); 
    348347    MPI_Waitall(nbRecvRequest, recvRequest, status); 
     348    MPI_Waitall(nbSendRequest, sendRequest, status);  
     349     
    349350     
    350351 
     
    407408        } 
    408409    } 
    409  
     410     
    410411    /* free all memory allocated in this function */ 
    411     for (int rank = 0; rank < mpiSize; rank++) 
     412    /*for (int rank = 0; rank < mpiSize; rank++) 
    412413    { 
    413414        if (nbSendElement[rank] > 0) 
     
    446447    delete[] sendNeighIds; 
    447448    delete[] recvNeighIds; 
     449    */ 
    448450    return i; 
    449451} 
     
    546548        } 
    547549    } 
    548  
     550     
     551    MPI_Waitall(nbRecvRequest, recvRequest, status); 
    549552    MPI_Waitall(nbSendRequest, sendRequest, status); 
    550     MPI_Waitall(nbRecvRequest, recvRequest, status); 
    551553 
    552554    for (int rank = 0; rank < mpiSize; rank++) 
     
    619621    } 
    620622 
     623    MPI_Waitall(nbRecvRequest, recvRequest, status); 
    621624    MPI_Waitall(nbSendRequest, sendRequest, status); 
    622     MPI_Waitall(nbRecvRequest, recvRequest, status); 
    623625  
    624626    int nbNeighbourNodes = 0; 
     
    803805    } 
    804806  
     807    MPI_Waitall(nbRecvRequest, recvRequest, status); 
    805808    MPI_Waitall(nbSendRequest, sendRequest, status); 
    806     MPI_Waitall(nbRecvRequest, recvRequest, status); 
     809     
    807810     
    808811    char **sendBuffer2 = new char*[mpiSize]; 
     
    878881        { 
    879882            MPI_Issend(sendBuffer2[rank], sentMessageSize[rank], MPI_CHAR, rank, 0, communicator, &sendRequest[nbSendRequest]); 
    880             printf("proc %d send %d elements to proc %d\n", mpiRank, sentMessageSize[rank], rank); 
    881883            nbSendRequest++; 
    882884        } 
     
    884886        { 
    885887            MPI_Irecv(recvBuffer2[rank], recvMessageSize[rank], MPI_CHAR, rank, 0, communicator, &recvRequest[nbRecvRequest]); 
    886             printf("proc %d recv %d elements from proc %d\n", mpiRank, recvMessageSize[rank], rank); 
    887888            nbRecvRequest++; 
    888889        } 
    889890    } 
    890891     
     892    MPI_Waitall(nbRecvRequest, recvRequest, status); 
    891893    MPI_Waitall(nbSendRequest, sendRequest, status); 
    892     MPI_Waitall(nbRecvRequest, recvRequest, status); 
     894    
    893895    
    894896 
Note: See TracChangeset for help on using the changeset viewer.