Changeset 1295 for XIOS/dev/branch_openmp/extern/remap
- Timestamp:
- 10/06/17 13:56:33 (6 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
XIOS/dev/branch_openmp/extern/remap/src/parallel_tree.cpp
r1220 r1295 158 158 int nrecv; // global number of samples THIS WILL BE THE NUMBER OF LEAFS IN THE SAMPLE TREE 159 159 MPI_Allreduce(&n, &nrecv, 1, MPI_INT, MPI_SUM, comm.comm); // => size of sample tree does not depend on keepNodes! 160 160 161 double ratio = blocSize / (1.0 * nrecv); 161 162 int nsend = ratio * n + 1; // nsend = n_local_samples / n_global_samples * blocksize + 1 = blocksize/comm.size … … 194 195 delete[] displs; 195 196 196 /* unpack */197 /*198 randomArray.resize(nrecv);199 randomizeArray(randomArray);200 tree.leafs.resize(nrecv);201 index = 0;202 203 204 for (int i = 0; i < nrecv; i++)205 {206 Coord x = *(Coord *)(&recvBuffer[index]);207 index += sizeof(Coord)/sizeof(*recvBuffer);208 double radius = recvBuffer[index++];209 tree.leafs[randomArray[i]].centre = x;210 tree.leafs[randomArray[i]].radius = radius;211 212 }213 */214 197 215 198 randomArray.resize(blocSize); … … 246 229 cerr << comm.rank << ": PROBLEM: (node assign)" << tree.levelSize[assignLevel] << " != " << comm.group_size << " (keepNodes)" 247 230 << " node size : "<<node.size()<<" bloc size : "<<blocSize<<" total number of leaf : "<<tree.leafs.size()<<endl ; 248 /* 249 MPI_Allreduce(&ok, &allok, 1, MPI_INT, MPI_PROD, communicator); 250 if (!allok) { 251 MPI_Finalize(); 252 exit(1); 253 } 254 */ 231 255 232 MPI_Abort(MPI_COMM_WORLD,-1) ; 256 233 } … … 323 300 nb=nb1+nb2 ; 324 301 MPI_Allreduce(&nb, &nbTot, 1, MPI_LONG, MPI_SUM, communicator) ; 302 303 325 304 int commSize ; 326 305 MPI_Comm_size(communicator,&commSize) ; … … 345 324 randomizeArray(randomArray2); 346 325 347 /* 348 int s1,s2 ; 349 350 if (node.size()< nbSampleNodes/2) 351 { 352 s1 = node.size() ; 353 s2 = nbSampleNodes-s1 ; 354 } 355 else if (node2.size()< nbSampleNodes/2) 356 { 357 s2 = node.size() ; 358 s1 = nbSampleNodes-s2 ; 359 } 360 else 361 { 362 s1=nbSampleNodes/2 ; 363 s2=nbSampleNodes/2 ; 364 } 365 */ 366 for (int i = 0; i <nbSampleNodes1; i++) sampleNodes.push_back(Node(node[randomArray1[i%nb1]].centre, node[randomArray1[i%nb1]].radius, NULL)); 367 for (int i = 0; i <nbSampleNodes2; i++) sampleNodes.push_back(Node(node2[randomArray2[i%nb2]].centre, node2[randomArray2[i%nb2]].radius, NULL)); 368 369 /* 370 for (int i = 0; i < nbSampleNodes/2; i++) 371 { 372 sampleNodes.push_back(Node(node[randomArray1[i]].centre, node[randomArray1[i]].radius, NULL)); 373 sampleNodes.push_back(Node(node2[randomArray2[i]].centre, node2[randomArray2[i]].radius, NULL)); 374 } 375 */ 326 for (int i = 0; i <nbSampleNodes1; i++) sampleNodes.push_back(Node(node[randomArray1[i%nb1]].centre, node[randomArray1[i%nb1]].radius, NULL)); 327 for (int i = 0; i <nbSampleNodes2; i++) sampleNodes.push_back(Node(node2[randomArray2[i%nb2]].centre, node2[randomArray2[i%nb2]].radius, NULL)); 328 376 329 CTimer::get("buildParallelSampleTree").resume(); 377 330 //sampleTree.buildParallelSampleTree(sampleNodes, cascade);
Note: See TracChangeset
for help on using the changeset viewer.