Ignore:
Timestamp:
01/23/19 10:31:44 (5 years ago)
Author:
yushan
Message:

dev on ADA. add flag switch _usingEP/_usingMPI

File:
1 edited

Legend:

Unmodified
Added
Removed
  • XIOS/dev/branch_openmp/src/client_client_dht_template_impl.hpp

    r1545 r1642  
    169169    recvIndexBuff = new unsigned long[recvNbIndexCount]; 
    170170 
    171 int request_size = 0; 
     171  int request_size = 0; 
    172172  for (int idx = 0; idx < recvRankClient.size(); ++idx) 
    173173  { 
     
    179179 
    180180  std::vector<ep_lib::MPI_Request> request(request_size); 
    181    
    182181  std::vector<int>::iterator itbRecvIndex = recvRankClient.begin(), itRecvIndex, 
    183182                             iteRecvIndex = recvRankClient.end(), 
     
    253252  } 
    254253 
    255 int requestOnReturn_size=0; 
     254  int requestOnReturn_size=0; 
    256255  for (int idx = 0; idx < recvRankOnReturn.size(); ++idx) 
    257256  { 
     
    482481  
    483482   std::vector<ep_lib::MPI_Request> request(request_size); 
     483 
    484484  int currentIndex = 0; 
    485485  int nbRecvClient = recvRankClient.size(); 
     
    489489    if (0 != recvNbIndexClientCount[idx]) 
    490490    { 
    491         recvIndexFromClients(recvRankClient[idx], recvIndexBuff+currentIndex, recvNbIndexClientCount[idx], commLevel, &request[request_position++]); 
    492         recvInfoFromClients(recvRankClient[idx], 
     491      recvIndexFromClients(recvRankClient[idx], recvIndexBuff+currentIndex, recvNbIndexClientCount[idx], commLevel, &request[request_position++]); 
     492      //if(clientRank==0) printf("recv index request = %p, inserted = %p, request = %d\n", &request[0], request.back(), *static_cast< int*>(request.back()->mpi_request)); 
     493      recvInfoFromClients(recvRankClient[idx], 
    493494                            recvInfoBuff+currentIndex*ProcessDHTElement<InfoType>::typeSize(), 
    494495                            recvNbIndexClientCount[idx]*ProcessDHTElement<InfoType>::typeSize(), 
    495496                            commLevel, &request[request_position++]); 
     497      //if(clientRank==0) printf("recv info request = %p, inserted = %p, request = %d\n", &request[0], request.back(), *static_cast< int*>(request.back()->mpi_request)); 
    496498    } 
    497499    currentIndex += recvNbIndexClientCount[idx]; 
     
    501503                                                iteIndex = client2ClientIndex.end(); 
    502504  for (itIndex = itbIndex; itIndex != iteIndex; ++itIndex) 
    503     sendIndexToClients(itIndex->first, itIndex->second, sendNbIndexBuff[itIndex->first-groupRankBegin], commLevel, &request[request_position++]); 
     505  {  sendIndexToClients(itIndex->first, itIndex->second, sendNbIndexBuff[itIndex->first-groupRankBegin], commLevel, &request[request_position++]); 
     506  }    //if(clientRank==0) printf("send index request = %p, inserted = %p, request = %d\n", &request[0], request.back(), *static_cast< int*>(request.back()->mpi_request));} 
    504507  std::unordered_map<int, unsigned char*>::iterator itbInfo = client2ClientInfo.begin(), itInfo, 
    505508                                                      iteInfo = client2ClientInfo.end(); 
    506509  for (itInfo = itbInfo; itInfo != iteInfo; ++itInfo) 
    507     sendInfoToClients(itInfo->first, itInfo->second, sendNbInfo[itInfo->first-groupRankBegin], commLevel, &request[request_position++]); 
     510   { sendInfoToClients(itInfo->first, itInfo->second, sendNbInfo[itInfo->first-groupRankBegin], commLevel, &request[request_position++]); 
     511   }//   if(clientRank==0) printf("send info request = %p, inserted = %p, request = %d\n", &request[0], request.back(), *static_cast< int*>(request.back()->mpi_request));} 
    508512 
    509513  std::vector<ep_lib::MPI_Status> status(request.size()); 
     514   
    510515  ep_lib::MPI_Waitall(request.size(), &request[0], &status[0]); 
    511516 
     
    566571  ep_lib::MPI_Request request; 
    567572  requestSendIndex.push_back(request); 
    568   ep_lib::MPI_Isend(indices, indiceSize, MPI_UNSIGNED_LONG, 
     573  ep_lib::MPI_Isend(indices, indiceSize, EP_UNSIGNED_LONG, 
    569574            clientDestRank, MPI_DHT_INDEX, clientIntraComm, &(requestSendIndex.back())); 
    570575} 
     
    583588                                                       ep_lib::MPI_Request* requestSendIndex) 
    584589{ 
    585   ep_lib::MPI_Isend(indices, indiceSize, MPI_UNSIGNED_LONG, 
     590  ep_lib::MPI_Isend(indices, indiceSize, EP_UNSIGNED_LONG, 
    586591            clientDestRank, MPI_DHT_INDEX, clientIntraComm, requestSendIndex); 
    587592} 
     
    601606  ep_lib::MPI_Request request; 
    602607  requestRecvIndex.push_back(request); 
    603   ep_lib::MPI_Irecv(indices, indiceSize, MPI_UNSIGNED_LONG, 
     608  ep_lib::MPI_Irecv(indices, indiceSize, EP_UNSIGNED_LONG, 
    604609            clientSrcRank, MPI_DHT_INDEX, clientIntraComm, &(requestRecvIndex.back())); 
    605610} 
     
    617622                                                         ep_lib::MPI_Request *requestRecvIndex) 
    618623{ 
    619   ep_lib::MPI_Irecv(indices, indiceSize, MPI_UNSIGNED_LONG, 
     624  ep_lib::MPI_Irecv(indices, indiceSize, EP_UNSIGNED_LONG, 
    620625            clientSrcRank, MPI_DHT_INDEX, clientIntraComm, requestRecvIndex); 
    621626} 
     
    637642  requestSendInfo.push_back(request); 
    638643 
    639   ep_lib::MPI_Isend(info, infoSize, MPI_CHAR, 
     644  ep_lib::MPI_Isend(info, infoSize, EP_CHAR, 
    640645            clientDestRank, MPI_DHT_INFO, clientIntraComm, &(requestSendInfo.back())); 
    641646} 
     
    654659                                                      ep_lib::MPI_Request *requestSendInfo) 
    655660{ 
    656   ep_lib::MPI_Isend(info, infoSize, MPI_CHAR, 
     661  ep_lib::MPI_Isend(info, infoSize, EP_CHAR, 
    657662            clientDestRank, MPI_DHT_INFO, clientIntraComm, requestSendInfo); 
    658663} 
     
    674679  requestRecvInfo.push_back(request); 
    675680 
    676   ep_lib::MPI_Irecv(info, infoSize, MPI_CHAR, 
     681  ep_lib::MPI_Irecv(info, infoSize, EP_CHAR, 
    677682            clientSrcRank, MPI_DHT_INFO, clientIntraComm, &(requestRecvInfo.back())); 
    678683} 
     
    691696                                                        ep_lib::MPI_Request* requestRecvInfo) 
    692697{ 
    693   ep_lib::MPI_Irecv(info, infoSize, MPI_CHAR, 
     698  ep_lib::MPI_Irecv(info, infoSize, EP_CHAR, 
    694699            clientSrcRank, MPI_DHT_INFO, clientIntraComm, requestRecvInfo); 
    695700} 
     
    767772  for (int idx = 0; idx < recvNbRank.size(); ++idx) 
    768773  { 
    769     ep_lib::MPI_Irecv(&recvNbElements[0]+idx, 1, MPI_INT, 
     774    ep_lib::MPI_Irecv(&recvNbElements[0]+idx, 1, EP_INT, 
    770775              recvNbRank[idx], MPI_DHT_INDEX_1, this->internalComm_, &request[nRequest]); 
    771776    ++nRequest; 
     
    774779  for (int idx = 0; idx < sendNbRank.size(); ++idx) 
    775780  { 
    776     ep_lib::MPI_Isend(&sendNbElements[0]+idx, 1, MPI_INT, 
     781    ep_lib::MPI_Isend(&sendNbElements[0]+idx, 1, EP_INT, 
    777782              sendNbRank[idx], MPI_DHT_INDEX_1, this->internalComm_, &request[nRequest]); 
    778783    ++nRequest; 
     
    808813  std::vector<ep_lib::MPI_Request> request(sendBuffSize+recvBuffSize); 
    809814  std::vector<ep_lib::MPI_Status> requestStatus(sendBuffSize+recvBuffSize); 
     815 
    810816  int nRequest = 0; 
    811817  for (int idx = 0; idx < recvBuffSize; ++idx) 
    812818  { 
    813     ep_lib::MPI_Irecv(&recvBuff[0]+2*idx, 2, MPI_INT, 
    814               recvRank[idx], MPI_DHT_INDEX_0, this->internalComm_, &request[nRequest++]); 
     819    ep_lib::MPI_Irecv(&recvBuff[0]+2*idx, 2, EP_INT, 
     820              recvRank[idx], MPI_DHT_INDEX_0, this->internalComm_, &request[nRequest]); 
     821    ++nRequest; 
    815822  } 
    816823 
     
    824831  for (int idx = 0; idx < sendBuffSize; ++idx) 
    825832  { 
    826     ep_lib::MPI_Isend(&sendBuff[idx*2], 2, MPI_INT, 
    827               sendRank[idx], MPI_DHT_INDEX_0, this->internalComm_, &request[nRequest++]); 
     833    ep_lib::MPI_Isend(&sendBuff[idx*2], 2, EP_INT, 
     834              sendRank[idx], MPI_DHT_INDEX_0, this->internalComm_, &request[nRequest]); 
     835    ++nRequest; 
    828836  } 
    829837 
Note: See TracChangeset for help on using the changeset viewer.