Ignore:
Timestamp:
01/22/19 16:43:32 (5 years ago)
Author:
yushan
Message:

revert erroneous commit on trunk

File:
1 edited

Legend:

Unmodified
Added
Removed
  • XIOS/trunk/extern/remap/src/mpi_routing.cpp

    r1638 r1639  
    1010const int verbose = 0; 
    1111 
    12 CMPIRouting::CMPIRouting(ep_lib::MPI_Comm comm) : communicator(comm) 
    13 { 
    14         ep_lib::MPI_Comm_rank(comm, &mpiRank); 
    15         ep_lib::MPI_Comm_size(comm, &mpiSize); 
     12CMPIRouting::CMPIRouting(MPI_Comm comm) : communicator(comm) 
     13{ 
     14        MPI_Comm_rank(comm, &mpiRank); 
     15        MPI_Comm_size(comm, &mpiSize); 
    1616} 
    1717 
     
    1919    but message lengths are *known* to receiver */ 
    2020template <typename T> 
    21 void alltoalls_known(const vector<vector<T> >& send, vector<vector<T> >& recv, const vector<int>& ranks, ep_lib::MPI_Comm communicator) 
    22 { 
    23         vector<ep_lib::MPI_Request> request(ranks.size() * 2); 
    24         vector<ep_lib::MPI_Status>  status(ranks.size() * 2); 
     21void alltoalls_known(const vector<vector<T> >& send, vector<vector<T> >& recv, const vector<int>& ranks, MPI_Comm communicator) 
     22{ 
     23        vector<MPI_Request> request(ranks.size() * 2); 
     24        vector<MPI_Status>  status(ranks.size() * 2); 
    2525 
    2626        // communicate data 
     
    2828        for (int i = 0; i < ranks.size(); i++) 
    2929                if (recv[i].size()) 
    30                         ep_lib::MPI_Irecv(&recv[i][0], recv[i].size()*sizeof(T), EP_CHAR, ranks[i], 0, communicator, &request[nbRequest++]); 
     30                        MPI_Irecv(&recv[i][0], recv[i].size()*sizeof(T), MPI_CHAR, ranks[i], 0, communicator, &request[nbRequest++]); 
    3131        for (int i = 0; i < ranks.size(); i++) 
    3232                if (send[i].size()) 
    33                         ep_lib::MPI_Isend((void *) &send[i][0], send[i].size()*sizeof(T), EP_CHAR, ranks[i], 0, communicator, &request[nbRequest++]); 
    34         ep_lib::MPI_Waitall(nbRequest, &request[0], &status[0]); 
     33                        MPI_Isend((void *) &send[i][0], send[i].size()*sizeof(T), MPI_CHAR, ranks[i], 0, communicator, &request[nbRequest++]); 
     34        MPI_Waitall(nbRequest, &request[0], &status[0]); 
    3535} 
    3636 
     
    3838    but message lengths are *unknown* to receiver */ 
    3939template <typename T> 
    40 void alltoalls_unknown(const vector<vector<T> >& send, vector<vector<T> >& recv, const vector<int>& ranks, ep_lib::MPI_Comm communicator) 
    41 { 
    42         vector<ep_lib::MPI_Request> request(ranks.size() * 2); 
    43         vector<ep_lib::MPI_Status>  status(ranks.size() * 2); 
     40void alltoalls_unknown(const vector<vector<T> >& send, vector<vector<T> >& recv, const vector<int>& ranks, MPI_Comm communicator) 
     41{ 
     42        vector<MPI_Request> request(ranks.size() * 2); 
     43        vector<MPI_Status>  status(ranks.size() * 2); 
    4444 
    4545        // communicate sizes 
     
    5050                sendSizes[i] = send[i].size(); 
    5151        for (int i = 0; i < ranks.size(); i++) 
    52                 ep_lib::MPI_Irecv(&recvSizes[i], 1, EP_INT, ranks[i], 0, communicator, &request[nbRequest++]); 
     52                MPI_Irecv(&recvSizes[i], 1, MPI_INT, ranks[i], 0, communicator, &request[nbRequest++]); 
    5353        for (int i = 0; i < ranks.size(); i++) 
    54                 ep_lib::MPI_Isend(&sendSizes[i], 1, EP_INT, ranks[i], 0, communicator, &request[nbRequest++]); 
    55         ep_lib::MPI_Waitall(nbRequest, &request[0], &status[0]); 
     54                MPI_Isend(&sendSizes[i], 1, MPI_INT, ranks[i], 0, communicator, &request[nbRequest++]); 
     55        MPI_Waitall(nbRequest, &request[0], &status[0]); 
    5656 
    5757        // allocate 
     
    118118        CTimer::get("CMPIRouting::init(reduce_scatter)").reset(); 
    119119        CTimer::get("CMPIRouting::init(reduce_scatter)").resume(); 
    120         ep_lib::MPI_Reduce_scatter(toSend, &nbSource, recvCount, EP_INT, EP_SUM, communicator); 
     120        MPI_Reduce_scatter(toSend, &nbSource, recvCount, MPI_INT, MPI_SUM, communicator); 
    121121        CTimer::get("CMPIRouting::init(reduce_scatter)").suspend(); 
    122122        CTimer::get("CMPIRouting::init(reduce_scatter)").print(); 
    123123 
    124         ep_lib::MPI_Alloc_mem(nbTarget *sizeof(int), EP_INFO_NULL, &targetRank); 
    125         ep_lib::MPI_Alloc_mem(nbSource *sizeof(int), EP_INFO_NULL, &sourceRank); 
     124        MPI_Alloc_mem(nbTarget *sizeof(int), MPI_INFO_NULL, &targetRank); 
     125        MPI_Alloc_mem(nbSource *sizeof(int), MPI_INFO_NULL, &sourceRank); 
    126126 
    127127        targetRankToIndex = new int[mpiSize]; 
     
    137137        } 
    138138 
    139         ep_lib::MPI_Barrier(communicator); 
     139        MPI_Barrier(communicator); 
    140140        CTimer::get("CMPIRouting::init(get_source)").reset(); 
    141141        CTimer::get("CMPIRouting::init(get_source)").resume(); 
    142142 
    143         ep_lib::MPI_Request *request = new ep_lib::MPI_Request[nbSource + nbTarget]; 
    144         ep_lib::MPI_Status  *status = new ep_lib::MPI_Status[nbSource + nbTarget]; 
     143        MPI_Request *request = new MPI_Request[nbSource + nbTarget]; 
     144        MPI_Status  *status = new MPI_Status[nbSource + nbTarget]; 
    145145 
    146146        int indexRequest = 0; 
     
    150150        for (int i = 0; i < nbSource; i++) 
    151151        { 
    152                 #ifdef _usingMPI 
    153                 ep_lib::MPI_Irecv(&sourceRank[i], 1, EP_INT, MPI_ANY_SOURCE, 0, communicator, &request[indexRequest]); 
    154                 #elif _usingEP 
    155                 ep_lib::MPI_Irecv(&sourceRank[i], 1, EP_INT, -2, 0, communicator, &request[indexRequest]); 
    156                 #endif 
    157                 indexRequest++; 
    158         } 
    159         MPI_Barrier(communicator); 
    160         for (int i = 0; i < nbTarget; i++) 
    161         { 
    162                 ep_lib::MPI_Isend(&mpiRank, 1, EP_INT, targetRank[i], 0, communicator, &request[indexRequest]); 
     152                MPI_Irecv(&sourceRank[i], 1, MPI_INT, MPI_ANY_SOURCE, 0, communicator, &request[indexRequest]); 
     153                indexRequest++; 
     154        } 
     155        MPI_Barrier(communicator); 
     156        for (int i = 0; i < nbTarget; i++) 
     157        { 
     158                MPI_Isend(&mpiRank, 1, MPI_INT, targetRank[i], 0, communicator, &request[indexRequest]); 
    163159                indexRequest++; 
    164160        } 
     
    174170        for (int i = 0; i < nbSource; i++) 
    175171        { 
    176                 #ifdef _usingMPI 
    177                 ep_lib::MPI_Irecv(&sourceRank[i], 1, EP_INT, MPI_ANY_SOURCE, 0, communicator, &request[indexRequest]); 
    178                 #elif _usingEP 
    179                 ep_lib::MPI_Irecv(&sourceRank[i], 1, EP_INT, -2, 0, communicator, &request[indexRequest]); 
    180                 #endif 
    181                 indexRequest++; 
    182         } 
    183  
    184         for (int i = 0; i < nbTarget; i++) 
    185         { 
    186                 ep_lib::MPI_Isend(&mpiRank, 1, EP_INT, targetRank[i], 0, communicator, &request[indexRequest]); 
     172                MPI_Irecv(&sourceRank[i], 1, MPI_INT, MPI_ANY_SOURCE, 0, communicator, &request[indexRequest]); 
     173                indexRequest++; 
     174        } 
     175 
     176        for (int i = 0; i < nbTarget; i++) 
     177        { 
     178                MPI_Isend(&mpiRank, 1, MPI_INT, targetRank[i], 0, communicator, &request[indexRequest]); 
    187179                indexRequest++; 
    188180        } 
     
    209201        for (int i = 0; i < nbSource; i++) 
    210202        { 
    211                 ep_lib::MPI_Irecv(&nbSourceElement[i], 1, EP_INT, sourceRank[i], 0, communicator, &request[indexRequest]); 
     203                MPI_Irecv(&nbSourceElement[i], 1, MPI_INT, sourceRank[i], 0, communicator, &request[indexRequest]); 
    212204                indexRequest++; 
    213205        } 
     
    216208        { 
    217209                totalTargetElement += nbTargetElement[i]; 
    218                 ep_lib::MPI_Isend(&nbTargetElement[i], 1, EP_INT, targetRank[i], 0, communicator, &request[indexRequest]); 
     210                MPI_Isend(&nbTargetElement[i], 1, MPI_INT, targetRank[i], 0, communicator, &request[indexRequest]); 
    219211                indexRequest++; 
    220212        } 
     
    284276 
    285277 
    286         ep_lib::MPI_Request* request=new ep_lib::MPI_Request[nbSource+nbTarget]; 
    287         ep_lib::MPI_Status*  status=new ep_lib::MPI_Status[nbSource+nbTarget]; 
     278        MPI_Request* request=new MPI_Request[nbSource+nbTarget]; 
     279        MPI_Status*  status=new MPI_Status[nbSource+nbTarget]; 
    288280        int indexRequest=0; 
    289281 
    290         ep_lib::MPI_Barrier(communicator); 
     282        MPI_Barrier(communicator); 
    291283        CTimer::get("CMPIRouting::transferToTarget").reset(); 
    292284        CTimer::get("CMPIRouting::transferToTarget").resume(); 
     
    294286        for(int i=0; i<nbSource; i++) 
    295287        { 
    296                 ep_lib::MPI_Irecv(sourceBuffer[i],nbSourceElement[i]*sizeof(T),EP_CHAR, sourceRank[i], 0, communicator, &request[indexRequest]); 
     288                MPI_Irecv(sourceBuffer[i],nbSourceElement[i]*sizeof(T),MPI_CHAR, sourceRank[i], 0, communicator, &request[indexRequest]); 
    297289                indexRequest++; 
    298290        } 
     
    300292        for(int i=0;i<nbTarget; i++) 
    301293        { 
    302                 ep_lib::MPI_Isend(targetBuffer[i],nbTargetElement[i]*sizeof(T), EP_CHAR, targetRank[i], 0, communicator, &request[indexRequest]); 
    303                 indexRequest++; 
    304         } 
    305  
    306         ep_lib::MPI_Waitall(indexRequest,request,status); 
     294                MPI_Isend(targetBuffer[i],nbTargetElement[i]*sizeof(T), MPI_CHAR, targetRank[i], 0, communicator, &request[indexRequest]); 
     295                indexRequest++; 
     296        } 
     297 
     298        MPI_Waitall(indexRequest,request,status); 
    307299 
    308300        CTimer::get("CMPIRouting::transferToTarget").suspend(); 
    309301        CTimer::get("CMPIRouting::transferToTarget").print(); 
    310         ep_lib::MPI_Barrier(communicator); 
     302        MPI_Barrier(communicator); 
    311303 
    312304        // unpack the data 
     
    348340        } 
    349341 
    350         ep_lib::MPI_Request *request = new ep_lib::MPI_Request[nbSource + nbTarget]; 
    351         ep_lib::MPI_Status  *status = new ep_lib::MPI_Status[nbSource + nbTarget]; 
     342        MPI_Request *request = new MPI_Request[nbSource + nbTarget]; 
     343        MPI_Status  *status = new MPI_Status[nbSource + nbTarget]; 
    352344        int indexRequest = 0; 
    353345 
    354         ep_lib::MPI_Barrier(communicator); 
     346        MPI_Barrier(communicator); 
    355347        CTimer::get("CMPIRouting::transferToTarget(messageSize)").reset(); 
    356348        CTimer::get("CMPIRouting::transferToTarget(messageSize)").resume(); 
     
    358350        for(int i=0; i<nbSource; i++) 
    359351        { 
    360                 ep_lib::MPI_Irecv(&sourceMessageSize[i],1,EP_INT, sourceRank[i], 0, communicator, &request[indexRequest]); 
     352                MPI_Irecv(&sourceMessageSize[i],1,MPI_INT, sourceRank[i], 0, communicator, &request[indexRequest]); 
    361353                indexRequest++; 
    362354        } 
     
    364356        for(int i=0; i<nbTarget; i++) 
    365357        { 
    366                 ep_lib::MPI_Isend(&targetMessageSize[i],1, EP_INT, targetRank[i], 0, communicator, &request[indexRequest]); 
    367                 indexRequest++; 
    368         } 
    369  
    370         ep_lib::MPI_Waitall(indexRequest,request,status); 
    371  
    372         ep_lib::MPI_Barrier(communicator); 
     358                MPI_Isend(&targetMessageSize[i],1, MPI_INT, targetRank[i], 0, communicator, &request[indexRequest]); 
     359                indexRequest++; 
     360        } 
     361 
     362        MPI_Waitall(indexRequest,request,status); 
     363 
     364        MPI_Barrier(communicator); 
    373365        CTimer::get("CMPIRouting::transferToTarget(messageSize)").suspend(); 
    374366        CTimer::get("CMPIRouting::transferToTarget(messageSize)").print(); 
     
    403395        for(int i=0; i<nbSource; i++) 
    404396        { 
    405                 ep_lib::MPI_Irecv(sourceBuffer[i],sourceMessageSize[i],EP_CHAR, sourceRank[i], 0, communicator, &request[indexRequest]); 
     397                MPI_Irecv(sourceBuffer[i],sourceMessageSize[i],MPI_CHAR, sourceRank[i], 0, communicator, &request[indexRequest]); 
    406398                indexRequest++; 
    407399        } 
     
    409401        for(int i=0;i<nbTarget; i++) 
    410402        { 
    411                 ep_lib::MPI_Isend(targetBuffer[i],targetMessageSize[i], EP_CHAR, targetRank[i], 0, communicator, &request[indexRequest]); 
     403                MPI_Isend(targetBuffer[i],targetMessageSize[i], MPI_CHAR, targetRank[i], 0, communicator, &request[indexRequest]); 
    412404                indexRequest++; 
    413405        } 
     
    468460        } 
    469461 
    470         ep_lib::MPI_Request* request=new ep_lib::MPI_Request[nbSource+nbTarget]; 
    471         ep_lib::MPI_Status*  status=new ep_lib::MPI_Status[nbSource+nbTarget]; 
     462        MPI_Request* request=new MPI_Request[nbSource+nbTarget]; 
     463        MPI_Status*  status=new MPI_Status[nbSource+nbTarget]; 
    472464        int indexRequest=0; 
    473465 
    474466        for(int i=0; i<nbSource; i++) 
    475467        { 
    476                 ep_lib::MPI_Isend(sourceBuffer[i],nbSourceElement[i]*sizeof(T),EP_CHAR, sourceRank[i], 0, communicator, &request[indexRequest]); 
     468                MPI_Isend(sourceBuffer[i],nbSourceElement[i]*sizeof(T),MPI_CHAR, sourceRank[i], 0, communicator, &request[indexRequest]); 
    477469                indexRequest++; 
    478470        } 
     
    480472        for(int i=0;i<nbTarget; i++) 
    481473        { 
    482                 ep_lib::MPI_Irecv(targetBuffer[i],nbTargetElement[i]*sizeof(T), EP_CHAR, targetRank[i], 0, communicator, &request[indexRequest]); 
    483                 indexRequest++; 
    484         } 
    485  
    486         ep_lib::MPI_Waitall(indexRequest,request,status); 
     474                MPI_Irecv(targetBuffer[i],nbTargetElement[i]*sizeof(T), MPI_CHAR, targetRank[i], 0, communicator, &request[indexRequest]); 
     475                indexRequest++; 
     476        } 
     477 
     478        MPI_Waitall(indexRequest,request,status); 
    487479 
    488480        // unpack the data 
     
    524516        } 
    525517 
    526         ep_lib::MPI_Request *request = new ep_lib::MPI_Request[nbSource + nbTarget]; 
    527         ep_lib::MPI_Status  *status = new ep_lib::MPI_Status[nbSource + nbTarget]; 
     518        MPI_Request *request = new MPI_Request[nbSource + nbTarget]; 
     519        MPI_Status  *status = new MPI_Status[nbSource + nbTarget]; 
    528520        int indexRequest = 0; 
    529521        for (int i = 0; i < nbSource; i++) 
    530522        { 
    531                 ep_lib::MPI_Isend(&sourceMessageSize[i], 1, EP_INT, sourceRank[i], 0, communicator, &request[indexRequest]); 
    532                 indexRequest++; 
    533         } 
    534         for (int i = 0; i < nbTarget; i++) 
    535         { 
    536                 ep_lib::MPI_Irecv(&targetMessageSize[i], 1, EP_INT, targetRank[i], 0, communicator, &request[indexRequest]); 
    537                 indexRequest++; 
    538         } 
    539         ep_lib::MPI_Waitall(indexRequest, request, status); 
     523                MPI_Isend(&sourceMessageSize[i], 1, MPI_INT, sourceRank[i], 0, communicator, &request[indexRequest]); 
     524                indexRequest++; 
     525        } 
     526        for (int i = 0; i < nbTarget; i++) 
     527        { 
     528                MPI_Irecv(&targetMessageSize[i], 1, MPI_INT, targetRank[i], 0, communicator, &request[indexRequest]); 
     529                indexRequest++; 
     530        } 
     531        MPI_Waitall(indexRequest, request, status); 
    540532 
    541533        for (int i = 0; i < nbTarget; i++) 
     
    565557        for (int i = 0; i < nbSource; i++) 
    566558        { 
    567                 ep_lib::MPI_Isend(sourceBuffer[i], sourceMessageSize[i], EP_CHAR, sourceRank[i], 0, communicator, &request[indexRequest]); 
    568                 indexRequest++; 
    569         } 
    570         for (int i = 0; i < nbTarget; i++) 
    571         { 
    572                 ep_lib::MPI_Irecv(targetBuffer[i], targetMessageSize[i], EP_CHAR, targetRank[i], 0, communicator, &request[indexRequest]); 
    573                 indexRequest++; 
    574         } 
    575         ep_lib::MPI_Waitall(indexRequest, request, status); 
     559                MPI_Isend(sourceBuffer[i], sourceMessageSize[i], MPI_CHAR, sourceRank[i], 0, communicator, &request[indexRequest]); 
     560                indexRequest++; 
     561        } 
     562        for (int i = 0; i < nbTarget; i++) 
     563        { 
     564                MPI_Irecv(targetBuffer[i], targetMessageSize[i], MPI_CHAR, targetRank[i], 0, communicator, &request[indexRequest]); 
     565                indexRequest++; 
     566        } 
     567        MPI_Waitall(indexRequest, request, status); 
    576568 
    577569        // unpack the data 
     
    613605 
    614606template void alltoalls_unknown(const std::vector<std::vector<NES> >& send, std::vector<std::vector<NES> >& recv, 
    615                                 const std::vector<int>& ranks, ep_lib::MPI_Comm communicator); 
     607                                const std::vector<int>& ranks, MPI_Comm communicator); 
    616608 
    617609template void alltoalls_known(const std::vector<std::vector<int> >& send, std::vector<std::vector<int> >& recv, 
    618                               const std::vector<int>& ranks, ep_lib::MPI_Comm communicator); 
    619  
    620 } 
     610                              const std::vector<int>& ranks, MPI_Comm communicator); 
     611 
     612} 
Note: See TracChangeset for help on using the changeset viewer.