- Timestamp:
- 11/15/17 12:14:34 (6 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
XIOS/dev/branch_openmp/extern/remap/src/parallel_tree.cpp
r1295 r1328 12 12 13 13 #include "parallel_tree.hpp" 14 using namespace ep_lib; 14 15 15 16 namespace sphereRemap { 16 17 extern CRemapGrid srcGrid;18 #pragma omp threadprivate(srcGrid)19 20 extern CRemapGrid tgtGrid;21 #pragma omp threadprivate(tgtGrid)22 17 23 18 static const int assignLevel = 2; … … 292 287 { 293 288 294 295 289 int assignLevel = 2; 290 int nbSampleNodes = 2*ipow(MAX_NODE_SZ + 1, assignLevel); 296 291 297 292 … … 305 300 MPI_Comm_size(communicator,&commSize) ; 306 301 307 308 309 310 //assert( nbTot > nbSampleNodes*commSize) ;302 // make multiple of two 303 nbSampleNodes /= 2; 304 nbSampleNodes *= 2; 305 // assert( nbTot > nbSampleNodes*commSize) ; 311 306 312 307 int nbSampleNodes1 = nbSampleNodes * (nb1*commSize)/(1.*nbTot) ; … … 314 309 315 310 316 //assert(node.size() > nbSampleNodes);317 //assert(node2.size() > nbSampleNodes);318 //assert(node.size() + node2.size() > nbSampleNodes);319 320 321 322 323 324 325 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));311 // assert(node.size() > nbSampleNodes); 312 // assert(node2.size() > nbSampleNodes); 313 // assert(node.size() + node2.size() > nbSampleNodes); 314 vector<Node> sampleNodes; sampleNodes.reserve(nbSampleNodes1+nbSampleNodes2); 315 316 vector<int> randomArray1(node.size()); 317 randomizeArray(randomArray1); 318 vector<int> randomArray2(node2.size()); 319 randomizeArray(randomArray2); 320 321 for (int i = 0; i <nbSampleNodes1; i++) sampleNodes.push_back(Node(node[randomArray1[i%nb1]].centre, node[randomArray1[i%nb1]].radius, NULL)); 322 for (int i = 0; i <nbSampleNodes2; i++) sampleNodes.push_back(Node(node2[randomArray2[i%nb2]].centre, node2[randomArray2[i%nb2]].radius, NULL)); 328 323 329 324 CTimer::get("buildParallelSampleTree").resume(); … … 336 331 CTimer::get("parallelRouteNode").resume(); 337 332 vector<int> route(node.size()); 333 cout<<"node.size = "<<node.size()<<endl; 338 334 routeNodes(route /*out*/, node); 339 335 CTimer::get("parallelRouteNode").suspend();
Note: See TracChangeset
for help on using the changeset viewer.