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/domain.cpp

    r1578 r1601  
    1919#include "client_server_mapping_distributed.hpp" 
    2020 
     21using namespace ep_lib; 
     22 
    2123#include <algorithm> 
    2224 
     
    6870   } 
    6971 
    70    std::map<StdString, ETranformationType> CDomain::transformationMapList_ = std::map<StdString, ETranformationType>(); 
    71    bool CDomain::_dummyTransformationMapList = CDomain::initializeTransformationMap(CDomain::transformationMapList_); 
     72   std::map<StdString, ETranformationType> *CDomain::transformationMapList_ptr = 0; 
    7273 
    7374   bool CDomain::initializeTransformationMap(std::map<StdString, ETranformationType>& m) 
     
    8283   } 
    8384 
     85   bool CDomain::initializeTransformationMap() 
     86   { 
     87     CDomain::transformationMapList_ptr = new std::map<StdString, ETranformationType>(); 
     88     (*CDomain::transformationMapList_ptr)["zoom_domain"] = TRANS_ZOOM_DOMAIN; 
     89     (*CDomain::transformationMapList_ptr)["interpolate_domain"] = TRANS_INTERPOLATE_DOMAIN; 
     90     (*CDomain::transformationMapList_ptr)["generate_rectilinear_domain"] = TRANS_GENERATE_RECTILINEAR_DOMAIN; 
     91     (*CDomain::transformationMapList_ptr)["compute_connectivity_domain"] = TRANS_COMPUTE_CONNECTIVITY_DOMAIN; 
     92     (*CDomain::transformationMapList_ptr)["expand_domain"] = TRANS_EXPAND_DOMAIN; 
     93     (*CDomain::transformationMapList_ptr)["reorder_domain"] = TRANS_REORDER_DOMAIN; 
     94     (*CDomain::transformationMapList_ptr)["extract_domain"] = TRANS_EXTRACT_DOMAIN; 
     95   } 
     96 
    8497   const std::set<StdString> & CDomain::getRelFiles(void) const 
    8598   { 
     
    92105     \return the number of indexes written by each server 
    93106   */ 
    94    int CDomain::getNumberWrittenIndexes(MPI_Comm writtenCom) 
     107   int CDomain::getNumberWrittenIndexes(ep_lib::MPI_Comm writtenCom) 
    95108   { 
    96109     int writtenSize; 
    97      MPI_Comm_size(writtenCom, &writtenSize); 
     110     ep_lib::MPI_Comm_size(writtenCom, &writtenSize); 
    98111     return numberWrittenIndexes_[writtenSize]; 
    99112   } 
     
    103116     \return the total number of indexes written by the servers 
    104117   */ 
    105    int CDomain::getTotalNumberWrittenIndexes(MPI_Comm writtenCom) 
     118   int CDomain::getTotalNumberWrittenIndexes(ep_lib::MPI_Comm writtenCom) 
    106119   { 
    107120     int writtenSize; 
    108      MPI_Comm_size(writtenCom, &writtenSize); 
     121     ep_lib::MPI_Comm_size(writtenCom, &writtenSize); 
    109122     return totalNumberWrittenIndexes_[writtenSize]; 
    110123   } 
     
    114127     \return the offset of indexes written by each server 
    115128   */ 
    116    int CDomain::getOffsetWrittenIndexes(MPI_Comm writtenCom) 
     129   int CDomain::getOffsetWrittenIndexes(ep_lib::MPI_Comm writtenCom) 
    117130   { 
    118131     int writtenSize; 
    119      MPI_Comm_size(writtenCom, &writtenSize); 
     132     ep_lib::MPI_Comm_size(writtenCom, &writtenSize); 
    120133     return offsetWrittenIndexes_[writtenSize]; 
    121134   } 
    122135 
    123    CArray<int, 1>& CDomain::getCompressedIndexToWriteOnServer(MPI_Comm writtenCom) 
     136   CArray<int, 1>& CDomain::getCompressedIndexToWriteOnServer(ep_lib::MPI_Comm writtenCom) 
    124137   { 
    125138     int writtenSize; 
    126      MPI_Comm_size(writtenCom, &writtenSize); 
     139     ep_lib::MPI_Comm_size(writtenCom, &writtenSize); 
    127140     return compressedIndexToWriteOnServer[writtenSize]; 
    128141   } 
     
    654667     int v ; 
    655668     v=ibegin ; 
    656      MPI_Allgather(&v,1,MPI_INT,ibegin_g,1,MPI_INT,client->intraComm) ; 
     669     ep_lib::MPI_Allgather(&v,1,MPI_INT,ibegin_g,1,MPI_INT,client->intraComm) ; 
    657670     v=jbegin ; 
    658      MPI_Allgather(&v,1,MPI_INT,jbegin_g,1,MPI_INT,client->intraComm) ; 
     671     ep_lib::MPI_Allgather(&v,1,MPI_INT,jbegin_g,1,MPI_INT,client->intraComm) ; 
    659672     v=ni ; 
    660      MPI_Allgather(&v,1,MPI_INT,ni_g,1,MPI_INT,client->intraComm) ; 
     673     ep_lib::MPI_Allgather(&v,1,MPI_INT,ni_g,1,MPI_INT,client->intraComm) ; 
    661674     v=nj ; 
    662      MPI_Allgather(&v,1,MPI_INT,nj_g,1,MPI_INT,client->intraComm) ; 
    663  
    664      MPI_Allgatherv(lon.dataFirst(),ni,MPI_DOUBLE,lon_g.dataFirst(),ni_g, ibegin_g,MPI_DOUBLE,client->intraComm) ; 
    665      MPI_Allgatherv(lat.dataFirst(),nj,MPI_DOUBLE,lat_g.dataFirst(),nj_g, jbegin_g,MPI_DOUBLE,client->intraComm) ; 
     675     ep_lib::MPI_Allgather(&v,1,MPI_INT,nj_g,1,MPI_INT,client->intraComm) ; 
     676 
     677     ep_lib::MPI_Allgatherv(lon.dataFirst(),ni,MPI_DOUBLE,lon_g.dataFirst(),ni_g, ibegin_g,MPI_DOUBLE,client->intraComm) ; 
     678     ep_lib::MPI_Allgatherv(lat.dataFirst(),nj,MPI_DOUBLE,lat_g.dataFirst(),nj_g, jbegin_g,MPI_DOUBLE,client->intraComm) ; 
    666679 
    667680      delete[] ibegin_g ; 
     
    19011914   } 
    19021915 
    1903   void CDomain::computeWrittenCompressedIndex(MPI_Comm writtenComm) 
     1916  void CDomain::computeWrittenCompressedIndex(ep_lib::MPI_Comm writtenComm) 
    19041917  { 
    19051918    int writtenCommSize; 
    1906     MPI_Comm_size(writtenComm, &writtenCommSize); 
     1919    ep_lib::MPI_Comm_size(writtenComm, &writtenCommSize); 
    19071920    if (compressedIndexToWriteOnServer.find(writtenCommSize) != compressedIndexToWriteOnServer.end()) 
    19081921      return; 
     
    19611974      { 
    19621975              
    1963         MPI_Allreduce(&numberWrittenIndexes_[writtenCommSize], &totalNumberWrittenIndexes_[writtenCommSize], 1, MPI_INT, MPI_SUM, writtenComm); 
    1964         MPI_Scan(&numberWrittenIndexes_[writtenCommSize], &offsetWrittenIndexes_[writtenCommSize], 1, MPI_INT, MPI_SUM, writtenComm); 
     1976        ep_lib::MPI_Allreduce(&numberWrittenIndexes_[writtenCommSize], &totalNumberWrittenIndexes_[writtenCommSize], 1, MPI_INT, MPI_SUM, writtenComm); 
     1977        ep_lib::MPI_Scan(&numberWrittenIndexes_[writtenCommSize], &offsetWrittenIndexes_[writtenCommSize], 1, MPI_INT, MPI_SUM, writtenComm); 
    19651978        offsetWrittenIndexes_[writtenCommSize] -= numberWrittenIndexes_[writtenCommSize]; 
    19661979      } 
     
    30453058 
    30463059        nodeElementName = node.getElementName(); 
    3047         std::map<StdString, ETranformationType>::const_iterator ite = transformationMapList_.end(), it; 
    3048         it = transformationMapList_.find(nodeElementName); 
     3060        if(transformationMapList_ptr == 0) initializeTransformationMap(); 
     3061        std::map<StdString, ETranformationType>::const_iterator ite = transformationMapList_ptr->end(), it; 
     3062        it = transformationMapList_ptr->find(nodeElementName); 
    30493063        if (ite != it) 
    30503064        { 
Note: See TracChangeset for help on using the changeset viewer.