Ignore:
Timestamp:
11/15/17 12:14:34 (6 years ago)
Author:
yushan
Message:

dev_omp

Location:
XIOS/dev/branch_openmp/extern/src_ep_dev
Files:
5 edited

Legend:

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

    r1287 r1328  
    3131      { 
    3232        fc_comm_map.insert(std::make_pair( std::make_pair( fint, omp_get_thread_num()) , comm)); 
    33         //printf("EP_Comm_c2f : MAP %p insert: %d, %d, %p\n", &fc_comm_map, fint, omp_get_thread_num(), comm.ep_comm_ptr); 
     33        printf("EP_Comm_c2f : MAP %p insert: %d, %d, %p\n", &fc_comm_map, fint, omp_get_thread_num(), comm.ep_comm_ptr); 
    3434      } 
    3535    } 
     
    5454      MPI_Comm comm_ptr; 
    5555      comm_ptr = it->second; 
    56       //printf("EP_Comm_f2c : MAP %p find: %d, %d, %p\n", &fc_comm_map, it->first.first, it->first.second, comm_ptr.ep_comm_ptr); 
     56      printf("EP_Comm_f2c : MAP %p find: %d, %d, %p\n", &fc_comm_map, it->first.first, it->first.second, comm_ptr.ep_comm_ptr); 
    5757      return  comm_ptr; 
    5858    } 
  • XIOS/dev/branch_openmp/extern/src_ep_dev/ep_intercomm.cpp

    r1287 r1328  
    4747 
    4848      MPI_Waitall(2, request, status); 
     49 
     50      //MPI_Send(&leader_ranks[0], 3, static_cast< ::MPI_Datatype>(MPI_INT), remote_leader, tag, peer_comm); 
     51      //MPI_Recv(&leader_ranks[3], 3, static_cast< ::MPI_Datatype>(MPI_INT), remote_leader, tag, peer_comm, &status[1]); 
    4952    } 
    5053 
  • XIOS/dev/branch_openmp/extern/src_ep_dev/ep_lib.cpp

    r1295 r1328  
    1010#pragma omp threadprivate(EP_PendingRequests) 
    1111 
     12 
     13 
    1214namespace ep_lib 
    1315{  
     16  bool MPI_Comm::is_null() 
     17  { 
     18    if(!this->is_intercomm) 
     19      return this->mpi_comm == MPI_COMM_NULL.mpi_comm; 
     20    else 
     21      return this->ep_comm_ptr->intercomm->mpi_inter_comm == MPI_COMM_NULL.mpi_comm; 
     22  } 
    1423 
    1524  int tag_combine(int real_tag, int src, int dest) 
  • XIOS/dev/branch_openmp/extern/src_ep_dev/ep_send.cpp

    r1295 r1328  
    1919    if(!comm.is_ep) 
    2020      return ::MPI_Send(buf, count, to_mpi_type(datatype), dest, tag, to_mpi_comm(comm.mpi_comm)); 
    21  
    22     MPI_Request request; 
    23     MPI_Status status; 
    24     MPI_Isend(buf, count, datatype, dest, tag, comm, &request); 
    25     MPI_Wait(&request, &status); 
    26  
     21    if(comm.is_intercomm) 
     22    { 
     23      MPI_Request request; 
     24      MPI_Status status; 
     25      MPI_Isend(buf, count, datatype, dest, tag, comm, &request); 
     26      MPI_Wait(&request, &status); 
     27    } 
     28    else 
     29    { 
     30      int ep_src_loc  = comm.ep_comm_ptr->size_rank_info[1].first; 
     31      int ep_dest_loc = comm.ep_comm_ptr->comm_list->rank_map->at(dest).first; 
     32      int mpi_tag     = tag_combine(tag, ep_src_loc, ep_dest_loc); 
     33      int mpi_dest    = comm.ep_comm_ptr->comm_list->rank_map->at(dest).second; 
     34 
     35      ::MPI_Send(buf, count, to_mpi_type(datatype), mpi_dest, mpi_tag, to_mpi_comm(comm.mpi_comm)); 
     36      //printf("call mpi_send for intracomm, dest = %d, tag = %d\n", dest, tag); 
     37    } 
    2738    //check_sum_send(buf, count, datatype, dest, tag, comm); 
    2839 
  • XIOS/dev/branch_openmp/extern/src_ep_dev/ep_type.hpp

    r1295 r1328  
    344344    } 
    345345 
     346    bool is_null(); 
     347 
    346348  }; 
    347349 
Note: See TracChangeset for help on using the changeset viewer.