Changeset 1601 for XIOS/dev/dev_trunk_omp/src/node/axis.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/axis.cpp
r1566 r1601 14 14 #include "distribution_client.hpp" 15 15 16 using namespace ep_lib; 17 16 18 namespace xios { 17 19 … … 26 28 , transformationMap_(), hasValue(false), hasLabel(false) 27 29 , computedWrittenIndex_(false) 28 30 , clients() 29 31 { 30 32 } … … 38 40 , transformationMap_(), hasValue(false), hasLabel(false) 39 41 , computedWrittenIndex_(false) 40 42 , clients() 41 43 { 42 44 } … … 45 47 { /* Ne rien faire de plus */ } 46 48 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 49 51 bool CAxis::initializeTransformationMap(std::map<StdString, ETranformationType>& m) 50 52 { … … 58 60 m["temporal_splitting"] = TRANS_TEMPORAL_SPLITTING; 59 61 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; 61 76 } 62 77 … … 114 129 \return the number of indexes written by each server 115 130 */ 116 int CAxis::getNumberWrittenIndexes( MPI_Comm writtenCom)131 int CAxis::getNumberWrittenIndexes(ep_lib::MPI_Comm writtenCom) 117 132 { 118 133 int writtenSize; 119 MPI_Comm_size(writtenCom, &writtenSize);134 ep_lib::MPI_Comm_size(writtenCom, &writtenSize); 120 135 return numberWrittenIndexes_[writtenSize]; 121 136 } … … 125 140 \return the total number of indexes written by the servers 126 141 */ 127 int CAxis::getTotalNumberWrittenIndexes( MPI_Comm writtenCom)142 int CAxis::getTotalNumberWrittenIndexes(ep_lib::MPI_Comm writtenCom) 128 143 { 129 144 int writtenSize; 130 MPI_Comm_size(writtenCom, &writtenSize);145 ep_lib::MPI_Comm_size(writtenCom, &writtenSize); 131 146 return totalNumberWrittenIndexes_[writtenSize]; 132 147 } … … 136 151 \return the offset of indexes written by each server 137 152 */ 138 int CAxis::getOffsetWrittenIndexes( MPI_Comm writtenCom)153 int CAxis::getOffsetWrittenIndexes(ep_lib::MPI_Comm writtenCom) 139 154 { 140 155 int writtenSize; 141 MPI_Comm_size(writtenCom, &writtenSize);156 ep_lib::MPI_Comm_size(writtenCom, &writtenSize); 142 157 return offsetWrittenIndexes_[writtenSize]; 143 158 } 144 159 145 CArray<int, 1>& CAxis::getCompressedIndexToWriteOnServer( MPI_Comm writtenCom)160 CArray<int, 1>& CAxis::getCompressedIndexToWriteOnServer(ep_lib::MPI_Comm writtenCom) 146 161 { 147 162 int writtenSize; 148 MPI_Comm_size(writtenCom, &writtenSize);163 ep_lib::MPI_Comm_size(writtenCom, &writtenSize); 149 164 return compressedIndexToWriteOnServer[writtenSize]; 150 165 } … … 689 704 } 690 705 691 void CAxis::computeWrittenCompressedIndex( MPI_Comm writtenComm)706 void CAxis::computeWrittenCompressedIndex(ep_lib::MPI_Comm writtenComm) 692 707 { 693 708 int writtenCommSize; 694 MPI_Comm_size(writtenComm, &writtenCommSize);709 ep_lib::MPI_Comm_size(writtenComm, &writtenCommSize); 695 710 if (compressedIndexToWriteOnServer.find(writtenCommSize) != compressedIndexToWriteOnServer.end()) 696 711 return; … … 750 765 { 751 766 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); 754 769 offsetWrittenIndexes_[writtenCommSize] -= numberWrittenIndexes_[writtenCommSize]; 755 770 } … … 1346 1361 1347 1362 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); 1350 1367 if (ite != it) 1351 1368 {
Note: See TracChangeset
for help on using the changeset viewer.