Changeset 923 for XIOS/trunk/extern/remap/src/parallel_tree.cpp
- Timestamp:
- 08/26/16 15:07:20 (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
XIOS/trunk/extern/remap/src/parallel_tree.cpp
r898 r923 114 114 } 115 115 116 CParallelTree::CParallelTree(MPI_Comm comm) : communicator(comm), cascade(MIN_NODE_SZ*MIN_NODE_SZ, comm) 116 //CParallelTree::CParallelTree(MPI_Comm comm) : communicator(comm), cascade(MIN_NODE_SZ*MIN_NODE_SZ, comm) 117 CParallelTree::CParallelTree(MPI_Comm comm) : communicator(comm), cascade(MAX_NODE_SZ*MAX_NODE_SZ*2, comm) 117 118 { 118 119 treeCascade.reserve(cascade.num_levels); … … 188 189 189 190 /* unpack */ 191 /* 190 192 randomArray.resize(nrecv); 191 193 randomizeArray(randomArray); 192 194 tree.leafs.resize(nrecv); 193 195 index = 0; 194 for (int i = 0; i < nrecv; i++) 196 197 198 for (int i = 0; i < nrecv; i++) 195 199 { 196 200 Coord x = *(Coord *)(&recvBuffer[index]); … … 201 205 202 206 } 207 */ 208 209 randomArray.resize(blocSize); 210 randomizeArray(randomArray); 211 tree.leafs.resize(blocSize); 212 index = 0; 213 214 size_t s=(sizeof(Coord)/sizeof(*recvBuffer)+1)*nrecv ; 215 216 for (int i = 0; i < blocSize; i++) 217 { 218 Coord x = *(Coord *)(&recvBuffer[index%s]); 219 index += sizeof(Coord)/sizeof(*recvBuffer); 220 double radius = recvBuffer[index%s]; 221 index++ ; 222 tree.leafs[randomArray[i]].centre = x; 223 tree.leafs[randomArray[i]].radius = radius; 224 225 } 226 203 227 204 228 delete [] recvBuffer; … … 206 230 CTimer::get("buildSampleTree(local)").resume(); 207 231 tree.build(tree.leafs); 208 cout << "SampleTree build : assign Level " << assignLevel << " nb Nodes : " << tree.levelSize[assignLevel] << endl;232 // cout << "SampleTree build : assign Level " << assignLevel << " nb Nodes : " << tree.levelSize[assignLevel] << endl; 209 233 CTimer::get("buildSampleTree(local)").suspend(); 210 234 CTimer::get("buildSampleTree(local)").print(); … … 214 238 if (!ok) 215 239 { 216 cerr << comm.rank << ": PROBLEM: (node assign)" << tree.levelSize[assignLevel] << " != " << comm.group_size << " (keepNodes)" << endl; 240 cerr << comm.rank << ": PROBLEM: (node assign)" << tree.levelSize[assignLevel] << " != " << comm.group_size << " (keepNodes)" 241 << " node size : "<<node.size()<<" bloc size : "<<blocSize<<" total number of leaf : "<<tree.leafs.size()<<endl ; 217 242 /* 218 243 MPI_Allreduce(&ok, &allok, 1, MPI_INT, MPI_PROD, communicator); … … 224 249 MPI_Abort(MPI_COMM_WORLD,-1) ; 225 250 } 251 /* 226 252 cout<<"*******************************************"<<endl ; 227 253 cout<<"******* Sample Tree output *********"<<endl ; … … 230 256 231 257 cout<<"*******************************************"<<endl ; 232 258 */ 233 259 234 260 assert(tree.root->incluCheck() == 0);
Note: See TracChangeset
for help on using the changeset viewer.