Changeset 1232 for XIOS/dev/XIOS_DEV_CMIP6/src/context_client.cpp
- Timestamp:
- 07/31/17 17:59:25 (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
XIOS/dev/XIOS_DEV_CMIP6/src/context_client.cpp
r1201 r1232 35 35 else MPI_Comm_size(interComm, &serverSize); 36 36 37 computeLeader(clientRank, clientSize, serverSize, ranksServerLeader, ranksServerNotLeader); 38 39 timeLine = 0; 40 } 41 42 void CContextClient::computeLeader(int clientRank, int clientSize, int serverSize, 43 std::list<int>& rankRecvLeader, 44 std::list<int>& rankRecvNotLeader) 45 { 46 if ((0 == clientSize) || (0 == serverSize)) return; 47 37 48 if (clientSize < serverSize) 38 49 { … … 50 61 51 62 for (int i = 0; i < serverByClient; i++) 52 rank sServerLeader.push_back(rankStart + i);53 54 rank sServerNotLeader.resize(0);63 rankRecvLeader.push_back(rankStart + i); 64 65 rankRecvNotLeader.resize(0); 55 66 } 56 67 else … … 62 73 { 63 74 if (clientRank % (clientByServer + 1) == 0) 64 rank sServerLeader.push_back(clientRank / (clientByServer + 1));75 rankRecvLeader.push_back(clientRank / (clientByServer + 1)); 65 76 else 66 rank sServerNotLeader.push_back(clientRank / (clientByServer + 1));77 rankRecvNotLeader.push_back(clientRank / (clientByServer + 1)); 67 78 } 68 79 else … … 70 81 int rank = clientRank - (clientByServer + 1) * remain; 71 82 if (rank % clientByServer == 0) 72 rank sServerLeader.push_back(remain + rank / clientByServer);83 rankRecvLeader.push_back(remain + rank / clientByServer); 73 84 else 74 ranksServerNotLeader.push_back(remain + rank / clientByServer); 75 } 76 } 77 78 timeLine = 0; 85 rankRecvNotLeader.push_back(remain + rank / clientByServer); 86 } 87 } 79 88 } 80 89
Note: See TracChangeset
for help on using the changeset viewer.