Changeset 1661 for XIOS/dev/dev_trunk_omp/src/transformation
- Timestamp:
- 05/15/19 17:19:08 (5 years ago)
- Location:
- XIOS/dev/dev_trunk_omp/src/transformation
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
XIOS/dev/dev_trunk_omp/src/transformation/domain_algorithm_interpolate.cpp
r1646 r1661 438 438 439 439 ep_lib::MPI_Comm poleComme = MPI_COMM_NULL; 440 ep_lib::MPI_Comm_split(client->intraComm, interMapValuePole.empty() ? 0 : 1, 0, &poleComme);440 MPI_Comm_split(client->intraComm, interMapValuePole.empty() ? 0 : 1, 0, &poleComme); 441 441 if (poleComme!=MPI_COMM_NULL) 442 442 { 443 443 int nbClientPole; 444 ep_lib::MPI_Comm_size(poleComme, &nbClientPole);444 MPI_Comm_size(poleComme, &nbClientPole); 445 445 446 446 std::map<int,std::vector<std::pair<int,double> > >::iterator itePole = interMapValuePole.end(), itPole, … … 453 453 std::vector<int> recvCount(nbClientPole,0); 454 454 std::vector<int> displ(nbClientPole,0); 455 ep_lib::MPI_Allgather(&nbWeight,1,MPI_INT,&recvCount[0],1,MPI_INT,poleComme) ; 455 MPI_Allgather(&nbWeight,1,MPI_INT,&recvCount[0],1,MPI_INT,poleComme) ; 456 456 457 displ[0]=0; 457 458 for(int n=1;n<nbClientPole;++n) displ[n]=displ[n-1]+recvCount[n-1] ; … … 475 476 476 477 // Gather all index and weight for pole 477 ep_lib::MPI_Allgatherv(&sendSourceIndexBuff[0],nbWeight,MPI_INT,&recvSourceIndexBuff[0],&recvCount[0],&displ[0],MPI_INT,poleComme);478 ep_lib::MPI_Allgatherv(&sendSourceWeightBuff[0],nbWeight,MPI_DOUBLE,&recvSourceWeightBuff[0],&recvCount[0],&displ[0],MPI_DOUBLE,poleComme);478 MPI_Allgatherv(&sendSourceIndexBuff[0],nbWeight,MPI_INT,&recvSourceIndexBuff[0],&recvCount[0],&displ[0],MPI_INT,poleComme); 479 MPI_Allgatherv(&sendSourceWeightBuff[0],nbWeight,MPI_DOUBLE,&recvSourceWeightBuff[0],&recvCount[0],&displ[0],MPI_DOUBLE,poleComme); 479 480 480 481 std::map<int,double> recvTemp; … … 633 634 634 635 635 ep_lib::MPI_Allreduce(sendBuff, recvBuff, nbClient, MPI_INT, MPI_SUM, client->intraComm);636 MPI_Allreduce(sendBuff, recvBuff, nbClient, MPI_INT, MPI_SUM, client->intraComm); 636 637 637 638 int* sendIndexDestBuff = new int [sendBuffSize]; … … 661 662 } 662 663 663 ep_lib::MPI_Isend(sendIndexDestBuff + sendOffSet,664 MPI_Isend(sendIndexDestBuff + sendOffSet, 664 665 k, 665 666 MPI_INT, … … 668 669 client->intraComm, 669 670 &sendRequest[position++]); 670 ep_lib::MPI_Isend(sendIndexSrcBuff + sendOffSet,671 MPI_Isend(sendIndexSrcBuff + sendOffSet, 671 672 k, 672 673 MPI_INT, … … 675 676 client->intraComm, 676 677 &sendRequest[position++]); 677 ep_lib::MPI_Isend(sendWeightBuff + sendOffSet,678 MPI_Isend(sendWeightBuff + sendOffSet, 678 679 k, 679 680 MPI_DOUBLE, … … 694 695 { 695 696 ep_lib::MPI_Status recvStatus; 696 ep_lib::MPI_Recv((recvIndexDestBuff + receivedSize),697 MPI_Recv((recvIndexDestBuff + receivedSize), 697 698 recvBuffSize, 698 699 MPI_INT, … … 710 711 #endif 711 712 712 ep_lib::MPI_Recv((recvIndexSrcBuff + receivedSize),713 MPI_Recv((recvIndexSrcBuff + receivedSize), 713 714 recvBuffSize, 714 715 MPI_INT, … … 718 719 &recvStatus); 719 720 720 ep_lib::MPI_Recv((recvWeightBuff + receivedSize),721 MPI_Recv((recvWeightBuff + receivedSize), 721 722 recvBuffSize, 722 723 MPI_DOUBLE, … … 735 736 736 737 std::vector<ep_lib::MPI_Status> requestStatus(sendRequest.size()); 737 ep_lib::MPI_Waitall(sendRequest.size(), &sendRequest[0], &requestStatus[0]);738 MPI_Waitall(sendRequest.size(), &sendRequest[0], &requestStatus[0]); 738 739 739 740 delete [] sendIndexDestBuff; … … 843 844 } 844 845 845 ep_lib::MPI_Allreduce(&localNbWeight, &globalNbWeight, 1, MPI_LONG, MPI_SUM, client->intraComm);846 ep_lib::MPI_Scan(&localNbWeight, &startIndex, 1, MPI_LONG, MPI_SUM, client->intraComm);846 MPI_Allreduce(&localNbWeight, &globalNbWeight, 1, MPI_LONG, MPI_SUM, client->intraComm); 847 MPI_Scan(&localNbWeight, &startIndex, 1, MPI_LONG, MPI_SUM, client->intraComm); 847 848 848 849 if (0 == globalNbWeight) -
XIOS/dev/dev_trunk_omp/src/transformation/generic_algorithm_transformation.cpp
r1646 r1661 136 136 { 137 137 distributed=domainListSrcP[elementPositionInGridSrc2DomainPosition_[elementPositionInGrid]]->isDistributed() ; 138 ep_lib::MPI_Allreduce(&distributed,&distributed_glo, 1, MPI_INT, MPI_LOR, client->intraComm) ;138 MPI_Allreduce(&distributed,&distributed_glo, 1, MPI_INT, MPI_LOR, client->intraComm) ; 139 139 140 140 } … … 142 142 { 143 143 distributed=axisListSrcP[elementPositionInGridSrc2AxisPosition_[elementPositionInGrid]]->isDistributed() ; 144 ep_lib::MPI_Allreduce(&distributed,&distributed_glo, 1, MPI_INT, MPI_LOR, client->intraComm) ;144 MPI_Allreduce(&distributed,&distributed_glo, 1, MPI_INT, MPI_LOR, client->intraComm) ; 145 145 } 146 146 else //it's a scalar … … 238 238 int sendValue = (computeGlobalIndexOnProc) ? 1 : 0; 239 239 int recvValue = 0; 240 ep_lib::MPI_Allreduce(&sendValue, &recvValue, 1, MPI_INT, MPI_SUM, client->intraComm);240 MPI_Allreduce(&sendValue, &recvValue, 1, MPI_INT, MPI_SUM, client->intraComm); 241 241 computeGlobalIndexOnProc = (0 < recvValue); 242 242 -
XIOS/dev/dev_trunk_omp/src/transformation/grid_transformation.cpp
r1646 r1661 514 514 sendRankSizeMap[itIndex->first] = sendSize; 515 515 } 516 ep_lib::MPI_Allgather(&connectedClient,1,MPI_INT,recvCount,1,MPI_INT,client->intraComm);516 MPI_Allgather(&connectedClient,1,MPI_INT,recvCount,1,MPI_INT,client->intraComm); 517 517 518 518 displ[0]=0 ; … … 521 521 int* recvRankBuff=new int[recvSize]; 522 522 int* recvSizeBuff=new int[recvSize]; 523 ep_lib::MPI_Allgatherv(sendRankBuff,connectedClient,MPI_INT,recvRankBuff,recvCount,displ,MPI_INT,client->intraComm);524 ep_lib::MPI_Allgatherv(sendSizeBuff,connectedClient,MPI_INT,recvSizeBuff,recvCount,displ,MPI_INT,client->intraComm);523 MPI_Allgatherv(sendRankBuff,connectedClient,MPI_INT,recvRankBuff,recvCount,displ,MPI_INT,client->intraComm); 524 MPI_Allgatherv(sendSizeBuff,connectedClient,MPI_INT,recvSizeBuff,recvCount,displ,MPI_INT,client->intraComm); 525 525 for (int i = 0; i < nbClient; ++i) 526 526 { … … 546 546 recvGlobalIndexSrc[recvRank] = new unsigned long [recvSize]; 547 547 548 ep_lib::MPI_Irecv(recvGlobalIndexSrc[recvRank], recvSize, MPI_UNSIGNED_LONG, recvRank, 46, client->intraComm, &requests[requests_position++]);549 ep_lib::MPI_Irecv(recvMaskDst[recvRank], recvSize, MPI_UNSIGNED_CHAR, recvRank, 47, client->intraComm, &requests[requests_position++]);548 MPI_Irecv(recvGlobalIndexSrc[recvRank], recvSize, MPI_UNSIGNED_LONG, recvRank, 46, client->intraComm, &requests[requests_position++]); 549 MPI_Irecv(recvMaskDst[recvRank], recvSize, MPI_UNSIGNED_CHAR, recvRank, 47, client->intraComm, &requests[requests_position++]); 550 550 } 551 551 … … 582 582 583 583 // Send global index source and mask 584 ep_lib::MPI_Isend(sendGlobalIndexSrc[sendRank], sendSize, MPI_UNSIGNED_LONG, sendRank, 46, client->intraComm, &requests[requests_position++]);585 ep_lib::MPI_Isend(sendMaskDst[sendRank], sendSize, MPI_UNSIGNED_CHAR, sendRank, 47, client->intraComm, &requests[requests_position++]);584 MPI_Isend(sendGlobalIndexSrc[sendRank], sendSize, MPI_UNSIGNED_LONG, sendRank, 46, client->intraComm, &requests[requests_position++]); 585 MPI_Isend(sendMaskDst[sendRank], sendSize, MPI_UNSIGNED_CHAR, sendRank, 47, client->intraComm, &requests[requests_position++]); 586 586 } 587 587 … … 599 599 int recvSize = itSend->second; 600 600 601 ep_lib::MPI_Irecv(sendMaskDst[recvRank], recvSize, MPI_UNSIGNED_CHAR, recvRank, 48, client->intraComm, &requests[requests_position++]);601 MPI_Irecv(sendMaskDst[recvRank], recvSize, MPI_UNSIGNED_CHAR, recvRank, 48, client->intraComm, &requests[requests_position++]); 602 602 } 603 603 … … 635 635 636 636 // Okie, now inform the destination which source index are masked 637 ep_lib::MPI_Isend(recvMaskDst[recvRank], recvSize, MPI_UNSIGNED_CHAR, recvRank, 48, client->intraComm, &requests[requests_position++]);637 MPI_Isend(recvMaskDst[recvRank], recvSize, MPI_UNSIGNED_CHAR, recvRank, 48, client->intraComm, &requests[requests_position++]); 638 638 } 639 639 status.resize(requests.size()); 640 ep_lib::MPI_Waitall(requests.size(), &requests[0], &status[0]);640 MPI_Waitall(requests.size(), &requests[0], &status[0]); 641 641 642 642 // Cool, now we can fill in local index of grid destination (counted for masked index)
Note: See TracChangeset
for help on using the changeset viewer.