Ignore:
Timestamp:
11/19/18 15:52:54 (5 years ago)
Author:
yushan
Message:

branch_openmp merged with trunk r1597

File:
1 edited

Legend:

Unmodified
Added
Removed
  • XIOS/dev/dev_trunk_omp/src/node/axis.cpp

    r1566 r1601  
    1414#include "distribution_client.hpp" 
    1515 
     16using namespace ep_lib; 
     17 
    1618namespace xios { 
    1719 
     
    2628      , transformationMap_(), hasValue(false), hasLabel(false) 
    2729      , computedWrittenIndex_(false) 
    28           , clients() 
     30      , clients() 
    2931   { 
    3032   } 
     
    3840      , transformationMap_(), hasValue(false), hasLabel(false) 
    3941      , computedWrittenIndex_(false) 
    40           , clients() 
     42      , clients() 
    4143   { 
    4244   } 
     
    4547   { /* Ne rien faire de plus */ } 
    4648 
    47    std::map<StdString, ETranformationType> CAxis::transformationMapList_ = std::map<StdString, ETranformationType>(); 
    48    bool CAxis::dummyTransformationMapList_ = CAxis::initializeTransformationMap(CAxis::transformationMapList_); 
     49   std::map<StdString, ETranformationType> *CAxis::transformationMapList_ptr = 0; 
     50 
    4951   bool CAxis::initializeTransformationMap(std::map<StdString, ETranformationType>& m) 
    5052   { 
     
    5860     m["temporal_splitting"] = TRANS_TEMPORAL_SPLITTING; 
    5961     m["duplicate_scalar"] = TRANS_DUPLICATE_SCALAR_TO_AXIS; 
    60  
     62   } 
     63 
     64   bool CAxis::initializeTransformationMap() 
     65   { 
     66     if(CAxis::transformationMapList_ptr == 0) CAxis::transformationMapList_ptr = new std::map<StdString, ETranformationType>(); 
     67     (*CAxis::transformationMapList_ptr)["zoom_axis"]        = TRANS_ZOOM_AXIS; 
     68     (*CAxis::transformationMapList_ptr)["interpolate_axis"] = TRANS_INTERPOLATE_AXIS; 
     69     (*CAxis::transformationMapList_ptr)["extract_axis"]     = TRANS_EXTRACT_AXIS; 
     70     (*CAxis::transformationMapList_ptr)["inverse_axis"]     = TRANS_INVERSE_AXIS; 
     71     (*CAxis::transformationMapList_ptr)["reduce_domain"]    = TRANS_REDUCE_DOMAIN_TO_AXIS; 
     72     (*CAxis::transformationMapList_ptr)["extract_domain"]   = TRANS_EXTRACT_DOMAIN_TO_AXIS; 
     73     (*CAxis::transformationMapList_ptr)["reduce_axis"]      = TRANS_REDUCE_AXIS_TO_AXIS; 
     74     (*CAxis::transformationMapList_ptr)["temporal_splitting"] = TRANS_TEMPORAL_SPLITTING; 
     75     (*CAxis::transformationMapList_ptr)["duplicate_scalar"] = TRANS_DUPLICATE_SCALAR_TO_AXIS; 
    6176   } 
    6277 
     
    114129     \return the number of indexes written by each server 
    115130   */ 
    116    int CAxis::getNumberWrittenIndexes(MPI_Comm writtenCom) 
     131   int CAxis::getNumberWrittenIndexes(ep_lib::MPI_Comm writtenCom) 
    117132   { 
    118133     int writtenSize; 
    119      MPI_Comm_size(writtenCom, &writtenSize); 
     134     ep_lib::MPI_Comm_size(writtenCom, &writtenSize); 
    120135     return numberWrittenIndexes_[writtenSize]; 
    121136   } 
     
    125140     \return the total number of indexes written by the servers 
    126141   */ 
    127    int CAxis::getTotalNumberWrittenIndexes(MPI_Comm writtenCom) 
     142   int CAxis::getTotalNumberWrittenIndexes(ep_lib::MPI_Comm writtenCom) 
    128143   { 
    129144     int writtenSize; 
    130      MPI_Comm_size(writtenCom, &writtenSize); 
     145     ep_lib::MPI_Comm_size(writtenCom, &writtenSize); 
    131146     return totalNumberWrittenIndexes_[writtenSize]; 
    132147   } 
     
    136151     \return the offset of indexes written by each server 
    137152   */ 
    138    int CAxis::getOffsetWrittenIndexes(MPI_Comm writtenCom) 
     153   int CAxis::getOffsetWrittenIndexes(ep_lib::MPI_Comm writtenCom) 
    139154   { 
    140155     int writtenSize; 
    141      MPI_Comm_size(writtenCom, &writtenSize); 
     156     ep_lib::MPI_Comm_size(writtenCom, &writtenSize); 
    142157     return offsetWrittenIndexes_[writtenSize]; 
    143158   } 
    144159 
    145    CArray<int, 1>& CAxis::getCompressedIndexToWriteOnServer(MPI_Comm writtenCom) 
     160   CArray<int, 1>& CAxis::getCompressedIndexToWriteOnServer(ep_lib::MPI_Comm writtenCom) 
    146161   { 
    147162     int writtenSize; 
    148      MPI_Comm_size(writtenCom, &writtenSize); 
     163     ep_lib::MPI_Comm_size(writtenCom, &writtenSize); 
    149164     return compressedIndexToWriteOnServer[writtenSize]; 
    150165   } 
     
    689704  } 
    690705 
    691   void CAxis::computeWrittenCompressedIndex(MPI_Comm writtenComm) 
     706  void CAxis::computeWrittenCompressedIndex(ep_lib::MPI_Comm writtenComm) 
    692707  { 
    693708    int writtenCommSize; 
    694     MPI_Comm_size(writtenComm, &writtenCommSize); 
     709    ep_lib::MPI_Comm_size(writtenComm, &writtenCommSize); 
    695710    if (compressedIndexToWriteOnServer.find(writtenCommSize) != compressedIndexToWriteOnServer.end()) 
    696711      return; 
     
    750765      { 
    751766              
    752         MPI_Allreduce(&numberWrittenIndexes_[writtenCommSize], &totalNumberWrittenIndexes_[writtenCommSize], 1, MPI_INT, MPI_SUM, writtenComm); 
    753         MPI_Scan(&numberWrittenIndexes_[writtenCommSize], &offsetWrittenIndexes_[writtenCommSize], 1, MPI_INT, MPI_SUM, writtenComm); 
     767        ep_lib::MPI_Allreduce(&numberWrittenIndexes_[writtenCommSize], &totalNumberWrittenIndexes_[writtenCommSize], 1, MPI_INT, MPI_SUM, writtenComm); 
     768        ep_lib::MPI_Scan(&numberWrittenIndexes_[writtenCommSize], &offsetWrittenIndexes_[writtenCommSize], 1, MPI_INT, MPI_SUM, writtenComm); 
    754769        offsetWrittenIndexes_[writtenCommSize] -= numberWrittenIndexes_[writtenCommSize]; 
    755770      } 
     
    13461361 
    13471362        nodeElementName = node.getElementName(); 
    1348         std::map<StdString, ETranformationType>::const_iterator ite = transformationMapList_.end(), it; 
    1349         it = transformationMapList_.find(nodeElementName); 
     1363 
     1364        if(transformationMapList_ptr == 0) initializeTransformationMap(); 
     1365        std::map<StdString, ETranformationType>::const_iterator ite = (*CAxis::transformationMapList_ptr).end(), it; 
     1366        it = (*CAxis::transformationMapList_ptr).find(nodeElementName); 
    13501367        if (ite != it) 
    13511368        { 
Note: See TracChangeset for help on using the changeset viewer.