Ignore:
Timestamp:
01/23/19 10:31:44 (5 years ago)
Author:
yushan
Message:

dev on ADA. add flag switch _usingEP/_usingMPI

File:
1 edited

Legend:

Unmodified
Added
Removed
  • XIOS/dev/branch_openmp/extern/src_ep_dev/ep_intercomm.cpp

    r1556 r1642  
    3333    } 
    3434     
    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); 
    3636     
    3737    if(mpi_rank_of_leader[0] != mpi_rank_of_leader[1]) 
     
    8686      MPI_Comm_rank(peer_comm, &local_leader_rank_in_peer); 
    8787      ::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); 
    8989 
    9090      send_quadruple[0] = ep_size; 
     
    9999      if(remote_leader > local_leader_rank_in_peer) 
    100100      { 
    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); 
    102102        MPI_Wait(&request, &status); 
    103103        
    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); 
    105105        MPI_Wait(&request, &status); 
    106106      } 
    107107      else 
    108108      { 
    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); 
    110110        MPI_Wait(&request, &status); 
    111111           
    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); 
    113113        MPI_Wait(&request, &status); 
    114114      } 
     
    123123    } 
    124124 
    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); 
    127127 
    128128    if(!is_local_leader) 
     
    152152 
    153153    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); 
    155155 
    156156    int *ranks_in_world_local  = new int[ep_size]; 
    157157    int *ranks_in_world_remote = new int[remote_ep_size]; 
    158158 
    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); 
    160160 
    161161    if(is_local_leader) 
     
    166166      if(remote_leader > local_leader_rank_in_peer) 
    167167      { 
    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); 
    169169        MPI_Wait(&request, &status); 
    170170        
    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); 
    172172        MPI_Wait(&request, &status); 
    173173      } 
    174174      else 
    175175      { 
    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); 
    177177        MPI_Wait(&request, &status); 
    178178           
    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); 
    180180        MPI_Wait(&request, &status); 
    181181      } 
     
    185185    } 
    186186 
    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); 
    188188 
    189189#ifdef _showinfo 
     
    313313      int *mpi_rank_list = new int[mpi_size]; 
    314314 
    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)); 
    317317 
    318318       
     
    347347      } 
    348348 
    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)); 
    350350 
    351351      ::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); 
    353353 
    354354      if(is_real_involved) 
     
    489489    int *remote_rank_info = new int[2*remote_ep_size]; 
    490490 
    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); 
    492492 
    493493    if(is_local_leader) 
     
    498498      if(priority) 
    499499      { 
    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); 
    501501        MPI_Wait(&request, &status); 
    502502        
    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); 
    504504        MPI_Wait(&request, &status); 
    505505      } 
    506506      else 
    507507      { 
    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); 
    517517 
    518518    for(int i=0; i<remote_ep_size; i++) 
     
    537537    } 
    538538    */ 
    539      
     539   //MPI_Barrier(*newintercomm);  
     540   //MPI_Barrier(*newintercomm);  
     541   //MPI_Barrier(*newintercomm);  
    540542  
    541543  } 
Note: See TracChangeset for help on using the changeset viewer.