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/transformation/axis_algorithm_inverse.cpp

    r1545 r1642  
    1515#include "inverse_axis.hpp" 
    1616#include "client_client_dht_template.hpp" 
    17 using namespace ep_lib; 
    1817 
    1918namespace xios { 
     
    2827                                                               std::map<int, int>& elementPositionInGridDst2AxisPosition, 
    2928                                                               std::map<int, int>& elementPositionInGridDst2DomainPosition) 
     29TRY 
    3030{ 
    3131  std::vector<CAxis*> axisListDestP = gridDst->getAxis(); 
     
    3838  return (new CAxisAlgorithmInverse(axisListDestP[axisDstIndex], axisListSrcP[axisSrcIndex], inverseAxis)); 
    3939} 
     40CATCH 
    4041 
    4142bool CAxisAlgorithmInverse::registerTrans() 
     43TRY 
    4244{ 
    4345  CGridTransformationFactory<CAxis>::registerTransformation(TRANS_INVERSE_AXIS, create); 
    4446} 
    45  
     47CATCH 
    4648 
    4749CAxisAlgorithmInverse::CAxisAlgorithmInverse(CAxis* axisDestination, CAxis* axisSource, CInverseAxis* inverseAxis) 
    4850 : CAxisAlgorithmTransformation(axisDestination, axisSource) 
     51TRY 
    4952{ 
    5053  if (axisDestination->n_glo.getValue() != axisSource->n_glo.getValue()) 
     
    5659  } 
    5760} 
     61CATCH 
    5862 
    5963void CAxisAlgorithmInverse::computeIndexSourceMapping_(const std::vector<CArray<double,1>* >& dataAuxInputs) 
     64TRY 
    6065{ 
    6166  this->transformationMapping_.resize(1); 
     
    8388  } 
    8489} 
     90CATCH 
    8591 
    8692/*! 
     
    8995*/ 
    9096void CAxisAlgorithmInverse::updateAxisValue() 
     97TRY 
    9198{ 
    9299  CContext* context = CContext::getCurrent(); 
     
    154161    sendRankSizeMap[itIndex->first] = sendSize; 
    155162  } 
    156   MPI_Allgather(&connectedClient,1,MPI_INT,recvCount,1,MPI_INT,client->intraComm); 
     163  ep_lib::MPI_Allgather(&connectedClient,1,EP_INT,recvCount,1,EP_INT,client->intraComm); 
    157164 
    158165  displ[0]=0 ; 
     
    161168  int* recvRankBuff=new int[recvSize]; 
    162169  int* recvSizeBuff=new int[recvSize]; 
    163   MPI_Allgatherv(sendRankBuff,connectedClient,MPI_INT,recvRankBuff,recvCount,displ,MPI_INT,client->intraComm); 
    164   MPI_Allgatherv(sendSizeBuff,connectedClient,MPI_INT,recvSizeBuff,recvCount,displ,MPI_INT,client->intraComm); 
     170  ep_lib::MPI_Allgatherv(sendRankBuff,connectedClient,EP_INT,recvRankBuff,recvCount,displ,EP_INT,client->intraComm); 
     171  ep_lib::MPI_Allgatherv(sendSizeBuff,connectedClient,EP_INT,recvSizeBuff,recvCount,displ,EP_INT,client->intraComm); 
    165172  for (int i = 0; i < nbClient; ++i) 
    166173  { 
     
    174181 
    175182  // Sending global index of grid source to corresponding process as well as the corresponding mask 
    176   std::vector<MPI_Request> requests; 
    177   std::vector<MPI_Status> status; 
     183  std::vector<ep_lib::MPI_Request> requests; 
     184  std::vector<ep_lib::MPI_Status> status; 
    178185  std::unordered_map<int, unsigned long* > recvGlobalIndexSrc; 
    179186  std::unordered_map<int, double* > sendValueToDest; 
     
    185192    sendValueToDest[recvRank] = new double [recvSize]; 
    186193 
    187     requests.push_back(MPI_Request()); 
    188     MPI_Irecv(recvGlobalIndexSrc[recvRank], recvSize, MPI_UNSIGNED_LONG, recvRank, 46, client->intraComm, &requests.back()); 
     194    requests.push_back(ep_lib::MPI_Request()); 
     195    ep_lib::MPI_Irecv(recvGlobalIndexSrc[recvRank], recvSize, EP_UNSIGNED_LONG, recvRank, 46, client->intraComm, &requests.back()); 
    189196  } 
    190197 
     
    207214 
    208215    // Send global index source and mask 
    209     requests.push_back(MPI_Request()); 
    210     MPI_Isend(sendGlobalIndexSrc[sendRank], sendSize, MPI_UNSIGNED_LONG, sendRank, 46, client->intraComm, &requests.back()); 
     216    requests.push_back(ep_lib::MPI_Request()); 
     217    ep_lib::MPI_Isend(sendGlobalIndexSrc[sendRank], sendSize, EP_UNSIGNED_LONG, sendRank, 46, client->intraComm, &requests.back()); 
    211218  } 
    212219 
    213220  status.resize(requests.size()); 
    214   MPI_Waitall(requests.size(), &requests[0], &status[0]); 
    215  
    216  
    217   std::vector<MPI_Request>().swap(requests); 
    218   std::vector<MPI_Status>().swap(status); 
     221  ep_lib::MPI_Waitall(requests.size(), &requests[0], &status[0]); 
     222 
     223 
     224  std::vector<ep_lib::MPI_Request>().swap(requests); 
     225  std::vector<ep_lib::MPI_Status>().swap(status); 
    219226 
    220227  // Okie, on destination side, we will wait for information of masked index of source 
     
    224231    int recvSize = itSend->second; 
    225232 
    226     requests.push_back(MPI_Request()); 
    227     MPI_Irecv(recvValueFromSrc[recvRank], recvSize, MPI_DOUBLE, recvRank, 48, client->intraComm, &requests.back()); 
     233    requests.push_back(ep_lib::MPI_Request()); 
     234    ep_lib::MPI_Irecv(recvValueFromSrc[recvRank], recvSize, EP_DOUBLE, recvRank, 48, client->intraComm, &requests.back()); 
    228235  } 
    229236 
     
    242249    } 
    243250    // Okie, now inform the destination which source index are masked 
    244     requests.push_back(MPI_Request()); 
    245     MPI_Isend(sendValueToDest[recvRank], recvSize, MPI_DOUBLE, recvRank, 48, client->intraComm, &requests.back()); 
     251    requests.push_back(ep_lib::MPI_Request()); 
     252    ep_lib::MPI_Isend(sendValueToDest[recvRank], recvSize, EP_DOUBLE, recvRank, 48, client->intraComm, &requests.back()); 
    246253  } 
    247254  status.resize(requests.size()); 
    248   MPI_Waitall(requests.size(), &requests[0], &status[0]); 
     255  ep_lib::MPI_Waitall(requests.size(), &requests[0], &status[0]); 
    249256 
    250257 
     
    283290    delete [] itLong->second; 
    284291} 
    285  
    286 } 
     292CATCH 
     293 
     294} 
Note: See TracChangeset for help on using the changeset viewer.