- Timestamp:
- 01/23/19 10:31:44 (5 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
XIOS/dev/branch_openmp/extern/src_ep_dev/ep_intercomm.cpp
r1556 r1642 33 33 } 34 34 35 MPI_Bcast(mpi_rank_of_leader, 2, MPI_INT, local_leader, local_comm);35 MPI_Bcast(mpi_rank_of_leader, 2, EP_INT, local_leader, local_comm); 36 36 37 37 if(mpi_rank_of_leader[0] != mpi_rank_of_leader[1]) … … 86 86 MPI_Comm_rank(peer_comm, &local_leader_rank_in_peer); 87 87 ::MPI_Comm_rank(to_mpi_comm(peer_comm->mpi_comm), &local_leader_rank_in_peer_mpi); 88 ::MPI_Comm_rank(to_mpi_comm( MPI_COMM_WORLD->mpi_comm), &local_leader_rank_in_world);88 ::MPI_Comm_rank(to_mpi_comm(EP_COMM_WORLD->mpi_comm), &local_leader_rank_in_world); 89 89 90 90 send_quadruple[0] = ep_size; … … 99 99 if(remote_leader > local_leader_rank_in_peer) 100 100 { 101 MPI_Isend(send_quadruple, 4, MPI_INT, remote_leader, tag, peer_comm, &request);101 MPI_Isend(send_quadruple, 4, EP_INT, remote_leader, tag, peer_comm, &request); 102 102 MPI_Wait(&request, &status); 103 103 104 MPI_Irecv(recv_quadruple, 4, MPI_INT, remote_leader, tag, peer_comm, &request);104 MPI_Irecv(recv_quadruple, 4, EP_INT, remote_leader, tag, peer_comm, &request); 105 105 MPI_Wait(&request, &status); 106 106 } 107 107 else 108 108 { 109 MPI_Irecv(recv_quadruple, 4, MPI_INT, remote_leader, tag, peer_comm, &request);109 MPI_Irecv(recv_quadruple, 4, EP_INT, remote_leader, tag, peer_comm, &request); 110 110 MPI_Wait(&request, &status); 111 111 112 MPI_Isend(send_quadruple, 4, MPI_INT, remote_leader, tag, peer_comm, &request);112 MPI_Isend(send_quadruple, 4, EP_INT, remote_leader, tag, peer_comm, &request); 113 113 MPI_Wait(&request, &status); 114 114 } … … 123 123 } 124 124 125 MPI_Bcast(send_quadruple, 4, MPI_INT, local_leader, local_comm);126 MPI_Bcast(recv_quadruple, 4, MPI_INT, local_leader, local_comm);125 MPI_Bcast(send_quadruple, 4, EP_INT, local_leader, local_comm); 126 MPI_Bcast(recv_quadruple, 4, EP_INT, local_leader, local_comm); 127 127 128 128 if(!is_local_leader) … … 152 152 153 153 int rank_in_world; 154 ::MPI_Comm_rank(to_mpi_comm( MPI_COMM_WORLD->mpi_comm), &rank_in_world);154 ::MPI_Comm_rank(to_mpi_comm(EP_COMM_WORLD->mpi_comm), &rank_in_world); 155 155 156 156 int *ranks_in_world_local = new int[ep_size]; 157 157 int *ranks_in_world_remote = new int[remote_ep_size]; 158 158 159 MPI_Allgather(&rank_in_world, 1, MPI_INT, ranks_in_world_local, 1, MPI_INT, local_comm);159 MPI_Allgather(&rank_in_world, 1, EP_INT, ranks_in_world_local, 1, EP_INT, local_comm); 160 160 161 161 if(is_local_leader) … … 166 166 if(remote_leader > local_leader_rank_in_peer) 167 167 { 168 MPI_Isend(ranks_in_world_local, ep_size, MPI_INT, remote_leader, tag, peer_comm, &request);168 MPI_Isend(ranks_in_world_local, ep_size, EP_INT, remote_leader, tag, peer_comm, &request); 169 169 MPI_Wait(&request, &status); 170 170 171 MPI_Irecv(ranks_in_world_remote, remote_ep_size, MPI_INT, remote_leader, tag, peer_comm, &request);171 MPI_Irecv(ranks_in_world_remote, remote_ep_size, EP_INT, remote_leader, tag, peer_comm, &request); 172 172 MPI_Wait(&request, &status); 173 173 } 174 174 else 175 175 { 176 MPI_Irecv(ranks_in_world_remote, remote_ep_size, MPI_INT, remote_leader, tag, peer_comm, &request);176 MPI_Irecv(ranks_in_world_remote, remote_ep_size, EP_INT, remote_leader, tag, peer_comm, &request); 177 177 MPI_Wait(&request, &status); 178 178 179 MPI_Isend(ranks_in_world_local, ep_size, MPI_INT, remote_leader, tag, peer_comm, &request);179 MPI_Isend(ranks_in_world_local, ep_size, EP_INT, remote_leader, tag, peer_comm, &request); 180 180 MPI_Wait(&request, &status); 181 181 } … … 185 185 } 186 186 187 MPI_Bcast(ranks_in_world_remote, remote_ep_size, MPI_INT, local_leader, local_comm);187 MPI_Bcast(ranks_in_world_remote, remote_ep_size, EP_INT, local_leader, local_comm); 188 188 189 189 #ifdef _showinfo … … 313 313 int *mpi_rank_list = new int[mpi_size]; 314 314 315 ::MPI_Allgather(&ownership, 1, to_mpi_type( MPI_INT), ownership_list, 1, to_mpi_type(MPI_INT), to_mpi_comm(local_comm->mpi_comm));316 ::MPI_Allgather(&mpi_rank, 1, to_mpi_type( MPI_INT), mpi_rank_list, 1, to_mpi_type(MPI_INT), to_mpi_comm(local_comm->mpi_comm));315 ::MPI_Allgather(&ownership, 1, to_mpi_type(EP_INT), ownership_list, 1, to_mpi_type(EP_INT), to_mpi_comm(local_comm->mpi_comm)); 316 ::MPI_Allgather(&mpi_rank, 1, to_mpi_type(EP_INT), mpi_rank_list, 1, to_mpi_type(EP_INT), to_mpi_comm(local_comm->mpi_comm)); 317 317 318 318 … … 347 347 } 348 348 349 ::MPI_Bcast(&local_leader_rank_in_extracted_comm, 1, to_mpi_type( MPI_INT), local_comm->ep_rank_map->at(local_leader).second, to_mpi_comm(local_comm->mpi_comm));349 ::MPI_Bcast(&local_leader_rank_in_extracted_comm, 1, to_mpi_type(EP_INT), local_comm->ep_rank_map->at(local_leader).second, to_mpi_comm(local_comm->mpi_comm)); 350 350 351 351 ::MPI_Comm *intracomm = new ::MPI_Comm; 352 bool is_real_involved = ownership && extracted_comm != to_mpi_comm( MPI_COMM_NULL->mpi_comm);352 bool is_real_involved = ownership && extracted_comm != to_mpi_comm(EP_COMM_NULL->mpi_comm); 353 353 354 354 if(is_real_involved) … … 489 489 int *remote_rank_info = new int[2*remote_ep_size]; 490 490 491 MPI_Allgather(rank_info, 2, MPI_INT, local_rank_info, 2, MPI_INT, local_comm);491 MPI_Allgather(rank_info, 2, EP_INT, local_rank_info, 2, EP_INT, local_comm); 492 492 493 493 if(is_local_leader) … … 498 498 if(priority) 499 499 { 500 MPI_Isend(local_rank_info, 2*ep_size, MPI_INT, remote_leader, tag, peer_comm, &request);500 MPI_Isend(local_rank_info, 2*ep_size, EP_INT, remote_leader, tag, peer_comm, &request); 501 501 MPI_Wait(&request, &status); 502 502 503 MPI_Irecv(remote_rank_info, 2*remote_ep_size, MPI_INT, remote_leader, tag, peer_comm, &request);503 MPI_Irecv(remote_rank_info, 2*remote_ep_size, EP_INT, remote_leader, tag, peer_comm, &request); 504 504 MPI_Wait(&request, &status); 505 505 } 506 506 else 507 507 { 508 MPI_Irecv(remote_rank_info, 2*remote_ep_size, MPI_INT, remote_leader, tag, peer_comm, &request);509 MPI_Wait(&request, &status); 510 511 MPI_Isend(local_rank_info, 2*ep_size, MPI_INT, remote_leader, tag, peer_comm, &request);512 MPI_Wait(&request, &status); 513 } 514 } 515 516 MPI_Bcast(remote_rank_info, 2*remote_ep_size, MPI_INT, local_leader, local_comm);508 MPI_Irecv(remote_rank_info, 2*remote_ep_size, EP_INT, remote_leader, tag, peer_comm, &request); 509 MPI_Wait(&request, &status); 510 511 MPI_Isend(local_rank_info, 2*ep_size, EP_INT, remote_leader, tag, peer_comm, &request); 512 MPI_Wait(&request, &status); 513 } 514 } 515 516 MPI_Bcast(remote_rank_info, 2*remote_ep_size, EP_INT, local_leader, local_comm); 517 517 518 518 for(int i=0; i<remote_ep_size; i++) … … 537 537 } 538 538 */ 539 539 //MPI_Barrier(*newintercomm); 540 //MPI_Barrier(*newintercomm); 541 //MPI_Barrier(*newintercomm); 540 542 541 543 }
Note: See TracChangeset
for help on using the changeset viewer.