Changeset 1661 for XIOS/dev/dev_trunk_omp/src/node
- Timestamp:
- 05/15/19 17:19:08 (5 years ago)
- Location:
- XIOS/dev/dev_trunk_omp/src/node
- Files:
-
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
XIOS/dev/dev_trunk_omp/src/node/axis.cpp
r1646 r1661 149 149 \return the number of indexes written by each server 150 150 */ 151 int CAxis::getNumberWrittenIndexes( ep_lib::MPI_Comm writtenCom)151 int CAxis::getNumberWrittenIndexes(MPI_Comm writtenCom) 152 152 TRY 153 153 { 154 154 int writtenSize; 155 ep_lib::MPI_Comm_size(writtenCom, &writtenSize);155 MPI_Comm_size(writtenCom, &writtenSize); 156 156 return numberWrittenIndexes_[writtenSize]; 157 157 } … … 162 162 \return the total number of indexes written by the servers 163 163 */ 164 int CAxis::getTotalNumberWrittenIndexes( ep_lib::MPI_Comm writtenCom)164 int CAxis::getTotalNumberWrittenIndexes(MPI_Comm writtenCom) 165 165 TRY 166 166 { 167 167 int writtenSize; 168 ep_lib::MPI_Comm_size(writtenCom, &writtenSize);168 MPI_Comm_size(writtenCom, &writtenSize); 169 169 return totalNumberWrittenIndexes_[writtenSize]; 170 170 } … … 175 175 \return the offset of indexes written by each server 176 176 */ 177 int CAxis::getOffsetWrittenIndexes( ep_lib::MPI_Comm writtenCom)177 int CAxis::getOffsetWrittenIndexes(MPI_Comm writtenCom) 178 178 TRY 179 179 { 180 180 int writtenSize; 181 ep_lib::MPI_Comm_size(writtenCom, &writtenSize);181 MPI_Comm_size(writtenCom, &writtenSize); 182 182 return offsetWrittenIndexes_[writtenSize]; 183 183 } 184 184 CATCH_DUMP_ATTR 185 185 186 CArray<int, 1>& CAxis::getCompressedIndexToWriteOnServer( ep_lib::MPI_Comm writtenCom)186 CArray<int, 1>& CAxis::getCompressedIndexToWriteOnServer(MPI_Comm writtenCom) 187 187 TRY 188 188 { 189 189 int writtenSize; 190 ep_lib::MPI_Comm_size(writtenCom, &writtenSize);190 MPI_Comm_size(writtenCom, &writtenSize); 191 191 return compressedIndexToWriteOnServer[writtenSize]; 192 192 } … … 787 787 CATCH_DUMP_ATTR 788 788 789 void CAxis::computeWrittenCompressedIndex( ep_lib::MPI_Comm writtenComm)789 void CAxis::computeWrittenCompressedIndex(MPI_Comm writtenComm) 790 790 TRY 791 791 { 792 792 int writtenCommSize; 793 ep_lib::MPI_Comm_size(writtenComm, &writtenCommSize);793 MPI_Comm_size(writtenComm, &writtenCommSize); 794 794 if (compressedIndexToWriteOnServer.find(writtenCommSize) != compressedIndexToWriteOnServer.end()) 795 795 return; … … 869 869 { 870 870 871 ep_lib::MPI_Allreduce(&numberWrittenIndexes_[writtenCommSize], &totalNumberWrittenIndexes_[writtenCommSize], 1, MPI_INT, MPI_SUM, writtenComm);872 ep_lib::MPI_Scan(&numberWrittenIndexes_[writtenCommSize], &offsetWrittenIndexes_[writtenCommSize], 1, MPI_INT, MPI_SUM, writtenComm);871 MPI_Allreduce(&numberWrittenIndexes_[writtenCommSize], &totalNumberWrittenIndexes_[writtenCommSize], 1, MPI_INT, MPI_SUM, writtenComm); 872 MPI_Scan(&numberWrittenIndexes_[writtenCommSize], &offsetWrittenIndexes_[writtenCommSize], 1, MPI_INT, MPI_SUM, writtenComm); 873 873 offsetWrittenIndexes_[writtenCommSize] -= numberWrittenIndexes_[writtenCommSize]; 874 874 } -
XIOS/dev/dev_trunk_omp/src/node/axis.hpp
r1646 r1661 182 182 static std::map<StdString, ETranformationType> *transformationMapList_ptr; 183 183 #pragma omp threadprivate(transformationMapList_ptr) 184 //static bool dummyTransformationMapList_;185 184 186 185 DECLARE_REF_FUNC(Axis,axis) -
XIOS/dev/dev_trunk_omp/src/node/context.cpp
r1646 r1661 287 287 else 288 288 { 289 ep_lib::MPI_Comm_dup(intraComm, &intraCommServer);289 MPI_Comm_dup(intraComm, &intraCommServer); 290 290 comms.push_back(intraCommServer); 291 ep_lib::MPI_Comm_dup(interComm, &interCommServer);291 MPI_Comm_dup(interComm, &interCommServer); 292 292 comms.push_back(interCommServer); 293 293 } … … 312 312 { 313 313 clientPrimServer.push_back(new CContextClient(this, intraComm, interComm)); 314 ep_lib::MPI_Comm_dup(intraComm, &intraCommServer);314 MPI_Comm_dup(intraComm, &intraCommServer); 315 315 comms.push_back(intraCommServer); 316 ep_lib::MPI_Comm_dup(interComm, &interCommServer);316 MPI_Comm_dup(interComm, &interCommServer); 317 317 comms.push_back(interCommServer); 318 318 serverPrimServer.push_back(new CContextServer(this, intraCommServer, interCommServer)); … … 413 413 else 414 414 { 415 ep_lib::MPI_Comm_dup(intraComm, &intraCommClient);415 MPI_Comm_dup(intraComm, &intraCommClient); 416 416 comms.push_back(intraCommClient); 417 ep_lib::MPI_Comm_dup(interComm, &interCommClient);417 MPI_Comm_dup(interComm, &interCommClient); 418 418 comms.push_back(interCommClient); 419 419 } … … 506 506 //! Free internally allocated communicators 507 507 for (std::list<ep_lib::MPI_Comm>::iterator it = comms.begin(); it != comms.end(); ++it) 508 ep_lib::MPI_Comm_free(&(*it));508 MPI_Comm_free(&(*it)); 509 509 comms.clear(); 510 510 … … 554 554 //! Free internally allocated communicators 555 555 for (std::list<ep_lib::MPI_Comm>::iterator it = comms.begin(); it != comms.end(); ++it) 556 ep_lib::MPI_Comm_free(&(*it));556 MPI_Comm_free(&(*it)); 557 557 comms.clear(); 558 558 … … 573 573 { 574 574 for (std::list<ep_lib::MPI_Comm>::iterator it = comms.begin(); it != comms.end(); ++it) 575 ep_lib::MPI_Comm_free(&(*it));575 MPI_Comm_free(&(*it)); 576 576 comms.clear(); 577 577 } -
XIOS/dev/dev_trunk_omp/src/node/context.hpp
r1646 r1661 145 145 void distributeFileOverMemoryBandwith() ; 146 146 147 148 147 // Send context close definition 149 148 void sendCloseDefinition(void); -
XIOS/dev/dev_trunk_omp/src/node/domain.cpp
r1646 r1661 116 116 \return the number of indexes written by each server 117 117 */ 118 int CDomain::getNumberWrittenIndexes( ep_lib::MPI_Comm writtenCom)118 int CDomain::getNumberWrittenIndexes(MPI_Comm writtenCom) 119 119 TRY 120 120 { 121 121 int writtenSize; 122 ep_lib::MPI_Comm_size(writtenCom, &writtenSize);122 MPI_Comm_size(writtenCom, &writtenSize); 123 123 return numberWrittenIndexes_[writtenSize]; 124 124 } … … 129 129 \return the total number of indexes written by the servers 130 130 */ 131 int CDomain::getTotalNumberWrittenIndexes( ep_lib::MPI_Comm writtenCom)131 int CDomain::getTotalNumberWrittenIndexes(MPI_Comm writtenCom) 132 132 TRY 133 133 { 134 134 int writtenSize; 135 ep_lib::MPI_Comm_size(writtenCom, &writtenSize);135 MPI_Comm_size(writtenCom, &writtenSize); 136 136 return totalNumberWrittenIndexes_[writtenSize]; 137 137 } … … 142 142 \return the offset of indexes written by each server 143 143 */ 144 int CDomain::getOffsetWrittenIndexes( ep_lib::MPI_Comm writtenCom)144 int CDomain::getOffsetWrittenIndexes(MPI_Comm writtenCom) 145 145 TRY 146 146 { 147 147 int writtenSize; 148 ep_lib::MPI_Comm_size(writtenCom, &writtenSize);148 MPI_Comm_size(writtenCom, &writtenSize); 149 149 return offsetWrittenIndexes_[writtenSize]; 150 150 } 151 151 CATCH_DUMP_ATTR 152 152 153 CArray<int, 1>& CDomain::getCompressedIndexToWriteOnServer( ep_lib::MPI_Comm writtenCom)153 CArray<int, 1>& CDomain::getCompressedIndexToWriteOnServer(MPI_Comm writtenCom) 154 154 TRY 155 155 { 156 156 int writtenSize; 157 ep_lib::MPI_Comm_size(writtenCom, &writtenSize);157 MPI_Comm_size(writtenCom, &writtenSize); 158 158 return compressedIndexToWriteOnServer[writtenSize]; 159 159 } … … 707 707 int v ; 708 708 v=ibegin ; 709 ep_lib::MPI_Allgather(&v,1,MPI_INT,ibegin_g,1,MPI_INT,client->intraComm) ;709 MPI_Allgather(&v,1,MPI_INT,ibegin_g,1,MPI_INT,client->intraComm) ; 710 710 v=jbegin ; 711 ep_lib::MPI_Allgather(&v,1,MPI_INT,jbegin_g,1,MPI_INT,client->intraComm) ;711 MPI_Allgather(&v,1,MPI_INT,jbegin_g,1,MPI_INT,client->intraComm) ; 712 712 v=ni ; 713 ep_lib::MPI_Allgather(&v,1,MPI_INT,ni_g,1,MPI_INT,client->intraComm) ;713 MPI_Allgather(&v,1,MPI_INT,ni_g,1,MPI_INT,client->intraComm) ; 714 714 v=nj ; 715 ep_lib::MPI_Allgather(&v,1,MPI_INT,nj_g,1,MPI_INT,client->intraComm) ;716 717 ep_lib::MPI_Allgatherv(lon.dataFirst(),ni,MPI_DOUBLE,lon_g.dataFirst(),ni_g, ibegin_g,MPI_DOUBLE,client->intraComm) ;718 ep_lib::MPI_Allgatherv(lat.dataFirst(),nj,MPI_DOUBLE,lat_g.dataFirst(),nj_g, jbegin_g,MPI_DOUBLE,client->intraComm) ;715 MPI_Allgather(&v,1,MPI_INT,nj_g,1,MPI_INT,client->intraComm) ; 716 717 MPI_Allgatherv(lon.dataFirst(),ni,MPI_DOUBLE,lon_g.dataFirst(),ni_g, ibegin_g,MPI_DOUBLE,client->intraComm) ; 718 MPI_Allgatherv(lat.dataFirst(),nj,MPI_DOUBLE,lat_g.dataFirst(),nj_g, jbegin_g,MPI_DOUBLE,client->intraComm) ; 719 719 720 720 delete[] ibegin_g ; … … 1949 1949 displs[0] = 0; 1950 1950 int localCount = connectedServerRank_[nbServer].size() ; 1951 ep_lib::MPI_Gather(&localCount, 1, MPI_INT, &counts[0], 1, MPI_INT, 0, client->intraComm) ;1951 MPI_Gather(&localCount, 1, MPI_INT, &counts[0], 1, MPI_INT, 0, client->intraComm) ; 1952 1952 for (int i = 0; i < clientSize-1; ++i) 1953 1953 { … … 1955 1955 } 1956 1956 std::vector<int> allConnectedServers(displs[clientSize-1]+counts[clientSize-1]); 1957 1958 ep_lib::MPI_Gatherv(&(connectedServerRank_[nbServer])[0], localCount, MPI_INT, &allConnectedServers[0], &counts[0], &displs[0], MPI_INT, 0, client->intraComm); 1959 1957 MPI_Gatherv(&(connectedServerRank_[nbServer])[0], localCount, MPI_INT, &allConnectedServers[0], &counts[0], &displs[0], MPI_INT, 0, client->intraComm); 1960 1958 1961 1959 if ((allConnectedServers.size() != nbServer) && (rank == 0)) … … 2022 2020 CATCH_DUMP_ATTR 2023 2021 2024 void CDomain::computeWrittenCompressedIndex( ep_lib::MPI_Comm writtenComm)2022 void CDomain::computeWrittenCompressedIndex(MPI_Comm writtenComm) 2025 2023 TRY 2026 2024 { 2027 2025 int writtenCommSize; 2028 ep_lib::MPI_Comm_size(writtenComm, &writtenCommSize);2026 MPI_Comm_size(writtenComm, &writtenCommSize); 2029 2027 if (compressedIndexToWriteOnServer.find(writtenCommSize) != compressedIndexToWriteOnServer.end()) 2030 2028 return; … … 2083 2081 { 2084 2082 2085 ep_lib::MPI_Allreduce(&numberWrittenIndexes_[writtenCommSize], &totalNumberWrittenIndexes_[writtenCommSize], 1, MPI_INT, MPI_SUM, writtenComm);2086 ep_lib::MPI_Scan(&numberWrittenIndexes_[writtenCommSize], &offsetWrittenIndexes_[writtenCommSize], 1, MPI_INT, MPI_SUM, writtenComm);2083 MPI_Allreduce(&numberWrittenIndexes_[writtenCommSize], &totalNumberWrittenIndexes_[writtenCommSize], 1, MPI_INT, MPI_SUM, writtenComm); 2084 MPI_Scan(&numberWrittenIndexes_[writtenCommSize], &offsetWrittenIndexes_[writtenCommSize], 1, MPI_INT, MPI_SUM, writtenComm); 2087 2085 offsetWrittenIndexes_[writtenCommSize] -= numberWrittenIndexes_[writtenCommSize]; 2088 2086 } -
XIOS/dev/dev_trunk_omp/src/node/file.cpp
r1646 r1661 307 307 308 308 int color = allZoneEmpty ? 0 : 1; 309 ep_lib::MPI_Comm_split(server->intraComm, color, server->intraCommRank, &fileComm);310 if (allZoneEmpty) ep_lib::MPI_Comm_free(&fileComm);309 MPI_Comm_split(server->intraComm, color, server->intraCommRank, &fileComm); 310 if (allZoneEmpty) MPI_Comm_free(&fileComm); 311 311 } 312 312 CATCH_DUMP_ATTR … … 557 557 { 558 558 int commSize, commRank; 559 ep_lib::MPI_Comm_size(fileComm, &commSize);560 ep_lib::MPI_Comm_rank(fileComm, &commRank);559 MPI_Comm_size(fileComm, &commSize); 560 MPI_Comm_rank(fileComm, &commRank); 561 561 562 562 if (server->intraCommSize > 1) … … 683 683 { 684 684 int commSize, commRank; 685 ep_lib::MPI_Comm_size(readComm, &commSize);686 ep_lib::MPI_Comm_rank(readComm, &commRank);685 MPI_Comm_size(readComm, &commSize); 686 MPI_Comm_rank(readComm, &commRank); 687 687 688 688 if (server->intraCommSize > 1) … … 728 728 isOpen = false; 729 729 } 730 //if (fileComm != MPI_COMM_NULL) MPI_Comm_free(&fileComm); 730 #ifdef _usingMPI 731 if (fileComm != MPI_COMM_NULL) MPI_Comm_free(&fileComm); 732 #endif 731 733 } 732 734 CATCH_DUMP_ATTR -
XIOS/dev/dev_trunk_omp/src/node/grid.cpp
r1646 r1661 697 697 CContext* context = CContext::getCurrent(); 698 698 699 CContextClient* client = context->client; // Here it's not important which contextClient to recuperate699 CContextClient* client = context->client; 700 700 int rank = client->clientRank; 701 701 … … 856 856 displs[0] = 0; 857 857 int localCount = connectedServerRank_[receiverSize].size() ; 858 ep_lib::MPI_Gather(&localCount, 1, MPI_INT, &counts[0], 1, MPI_INT, 0, client->intraComm) ; 859 858 MPI_Gather(&localCount, 1, MPI_INT, &counts[0], 1, MPI_INT, 0, client->intraComm) ; 860 859 for (int i = 0; i < client->clientSize-1; ++i) 861 860 { … … 863 862 } 864 863 std::vector<int> allConnectedServers(displs[client->clientSize-1]+counts[client->clientSize-1]); 865 866 ep_lib::MPI_Gatherv(&(connectedServerRank_[receiverSize])[0], localCount, MPI_INT, &allConnectedServers[0], &counts[0], &displs[0], MPI_INT, 0, client->intraComm); 867 864 MPI_Gatherv(&(connectedServerRank_[receiverSize])[0], localCount, MPI_INT, &allConnectedServers[0], &counts[0], &displs[0], MPI_INT, 0, client->intraComm); 868 865 869 866 if ((allConnectedServers.size() != receiverSize) && (client->clientRank == 0))
Note: See TracChangeset
for help on using the changeset viewer.