Changeset 1601 for XIOS/dev/dev_trunk_omp/src/node/domain.cpp
- Timestamp:
- 11/19/18 15:52:54 (5 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
XIOS/dev/dev_trunk_omp/src/node/domain.cpp
r1578 r1601 19 19 #include "client_server_mapping_distributed.hpp" 20 20 21 using namespace ep_lib; 22 21 23 #include <algorithm> 22 24 … … 68 70 } 69 71 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; 72 73 73 74 bool CDomain::initializeTransformationMap(std::map<StdString, ETranformationType>& m) … … 82 83 } 83 84 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 84 97 const std::set<StdString> & CDomain::getRelFiles(void) const 85 98 { … … 92 105 \return the number of indexes written by each server 93 106 */ 94 int CDomain::getNumberWrittenIndexes( MPI_Comm writtenCom)107 int CDomain::getNumberWrittenIndexes(ep_lib::MPI_Comm writtenCom) 95 108 { 96 109 int writtenSize; 97 MPI_Comm_size(writtenCom, &writtenSize);110 ep_lib::MPI_Comm_size(writtenCom, &writtenSize); 98 111 return numberWrittenIndexes_[writtenSize]; 99 112 } … … 103 116 \return the total number of indexes written by the servers 104 117 */ 105 int CDomain::getTotalNumberWrittenIndexes( MPI_Comm writtenCom)118 int CDomain::getTotalNumberWrittenIndexes(ep_lib::MPI_Comm writtenCom) 106 119 { 107 120 int writtenSize; 108 MPI_Comm_size(writtenCom, &writtenSize);121 ep_lib::MPI_Comm_size(writtenCom, &writtenSize); 109 122 return totalNumberWrittenIndexes_[writtenSize]; 110 123 } … … 114 127 \return the offset of indexes written by each server 115 128 */ 116 int CDomain::getOffsetWrittenIndexes( MPI_Comm writtenCom)129 int CDomain::getOffsetWrittenIndexes(ep_lib::MPI_Comm writtenCom) 117 130 { 118 131 int writtenSize; 119 MPI_Comm_size(writtenCom, &writtenSize);132 ep_lib::MPI_Comm_size(writtenCom, &writtenSize); 120 133 return offsetWrittenIndexes_[writtenSize]; 121 134 } 122 135 123 CArray<int, 1>& CDomain::getCompressedIndexToWriteOnServer( MPI_Comm writtenCom)136 CArray<int, 1>& CDomain::getCompressedIndexToWriteOnServer(ep_lib::MPI_Comm writtenCom) 124 137 { 125 138 int writtenSize; 126 MPI_Comm_size(writtenCom, &writtenSize);139 ep_lib::MPI_Comm_size(writtenCom, &writtenSize); 127 140 return compressedIndexToWriteOnServer[writtenSize]; 128 141 } … … 654 667 int v ; 655 668 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) ; 657 670 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) ; 659 672 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) ; 661 674 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) ; 666 679 667 680 delete[] ibegin_g ; … … 1901 1914 } 1902 1915 1903 void CDomain::computeWrittenCompressedIndex( MPI_Comm writtenComm)1916 void CDomain::computeWrittenCompressedIndex(ep_lib::MPI_Comm writtenComm) 1904 1917 { 1905 1918 int writtenCommSize; 1906 MPI_Comm_size(writtenComm, &writtenCommSize);1919 ep_lib::MPI_Comm_size(writtenComm, &writtenCommSize); 1907 1920 if (compressedIndexToWriteOnServer.find(writtenCommSize) != compressedIndexToWriteOnServer.end()) 1908 1921 return; … … 1961 1974 { 1962 1975 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); 1965 1978 offsetWrittenIndexes_[writtenCommSize] -= numberWrittenIndexes_[writtenCommSize]; 1966 1979 } … … 3045 3058 3046 3059 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); 3049 3063 if (ite != it) 3050 3064 {
Note: See TracChangeset
for help on using the changeset viewer.