Ignore:
Timestamp:
05/28/18 09:54:32 (6 years ago)
Author:
yushan
Message:

save dev

File:
1 edited

Legend:

Unmodified
Added
Removed
  • XIOS/dev/branch_openmp/extern/ep_dev/ep_accumulate.cpp

    r1398 r1500  
    1212                     int target_rank, MPI_Aint target_disp, int target_count, MPI_Datatype target_datatype, MPI_Op op, MPI_Win win) 
    1313  { 
    14     int target_mpi_rank   = win.comm.rank_map->at(target_rank).second; 
    15     int target_local_rank = win.comm.rank_map->at(target_rank).first; 
    16     int num_ep = win.comm.ep_comm_ptr->size_rank_info[1].second; 
     14    int target_mpi_rank   = win->comm->rank_map->at(target_rank).second; 
     15    int target_local_rank = win->comm->rank_map->at(target_rank).first; 
     16    int num_ep = win->comm->ep_comm_ptr->size_rank_info[1].second; 
    1717    if(num_ep==1) 
    1818      return  ::MPI_Accumulate(origin_addr, origin_count, to_mpi_type(origin_datatype), target_mpi_rank, to_mpi_aint(target_disp), target_count, to_mpi_type(target_datatype),  
    19                                to_mpi_op(op), to_mpi_win(win.server_win[target_local_rank])); 
     19                               to_mpi_op(op), to_mpi_win(win->server_win[target_local_rank])); 
    2020 
    2121    else 
    2222        return  ::MPI_Accumulate(origin_addr, origin_count, to_mpi_type(origin_datatype), target_mpi_rank, to_mpi_aint(target_disp), target_count, to_mpi_type(target_datatype),  
    23                                to_mpi_op(op), to_mpi_win(win.client_win)); 
     23                               to_mpi_op(op), to_mpi_win(win->client_win)); 
    2424  } 
    2525 
     
    2727                     int target_rank, MPI_Aint target_disp, int target_count, MPI_Datatype target_datatype, MPI_Op op, MPI_Win win, MPI_Request *request) 
    2828  { 
    29     int target_mpi_rank   = win.comm.rank_map->at(target_rank).second; 
    30     int target_local_rank = win.comm.rank_map->at(target_rank).first; 
    31     int num_ep = win.comm.ep_comm_ptr->size_rank_info[1].second; 
     29    int target_mpi_rank   = win->comm->rank_map->at(target_rank).second; 
     30    int target_local_rank = win->comm->rank_map->at(target_rank).first; 
     31    int num_ep = win->comm->ep_comm_ptr->size_rank_info[1].second; 
    3232    ::MPI_Request mpi_request; 
    3333 
     
    3535    { 
    3636      int return_value = ::MPI_Raccumulate(origin_addr, origin_count, to_mpi_type(origin_datatype), target_mpi_rank, to_mpi_aint(target_disp), target_count, to_mpi_type(target_datatype),  
    37                                    to_mpi_op(op), to_mpi_win(win.server_win[target_local_rank]), &mpi_request); 
    38       request->mpi_request = new ::MPI_Request(mpi_request); 
     37                                   to_mpi_op(op), to_mpi_win(win->server_win[target_local_rank]), &mpi_request); 
     38      (*request)->mpi_request = new ::MPI_Request(mpi_request); 
    3939 
    40       request->ep_datatype = origin_datatype; 
    41       request->type = 1; 
     40      (*request)->ep_datatype = origin_datatype; 
     41      (*request)->type = 1; 
    4242      return return_value; 
    4343    } 
     
    4646    { 
    4747      int return_value = ::MPI_Raccumulate(origin_addr, origin_count, to_mpi_type(origin_datatype), target_mpi_rank, to_mpi_aint(target_disp), target_count, to_mpi_type(target_datatype),  
    48                                    to_mpi_op(op), to_mpi_win(win.client_win), &mpi_request); 
    49       request->mpi_request = new ::MPI_Request(mpi_request); 
     48                                   to_mpi_op(op), to_mpi_win(win->client_win), &mpi_request); 
     49      (*request)->mpi_request = new ::MPI_Request(mpi_request); 
    5050 
    51       request->ep_datatype = origin_datatype; 
    52       request->type = 1; 
     51      (*request)->ep_datatype = origin_datatype; 
     52      (*request)->type = 1; 
    5353      return return_value; 
    5454    } 
     
    6060                         int target_count, MPI_Datatype target_datatype, MPI_Op op, MPI_Win win) 
    6161  { 
    62     int target_mpi_rank   = win.comm.rank_map->at(target_rank).second; 
    63     int target_local_rank = win.comm.rank_map->at(target_rank).first; 
    64     int num_ep = win.comm.ep_comm_ptr->size_rank_info[1].second; 
     62    int target_mpi_rank   = win->comm->rank_map->at(target_rank).second; 
     63    int target_local_rank = win->comm->rank_map->at(target_rank).first; 
     64    int num_ep = win->comm->ep_comm_ptr->size_rank_info[1].second; 
    6565    if(num_ep==1) 
    6666      return ::MPI_Get_accumulate(origin_addr, origin_count, to_mpi_type(origin_datatype), result_addr, result_count, to_mpi_type(result_datatype), target_mpi_rank, to_mpi_aint(target_disp), target_count, 
    67                                   to_mpi_type(target_datatype), to_mpi_op(op), to_mpi_win(win.server_win[target_local_rank])); 
     67                                  to_mpi_type(target_datatype), to_mpi_op(op), to_mpi_win(win->server_win[target_local_rank])); 
    6868    else 
    6969      return ::MPI_Get_accumulate(origin_addr, origin_count, to_mpi_type(origin_datatype), result_addr, result_count, to_mpi_type(result_datatype), target_mpi_rank, to_mpi_aint(target_disp), target_count, 
    70                                   to_mpi_type(target_datatype), to_mpi_op(op), to_mpi_win(win.client_win)); 
     70                                  to_mpi_type(target_datatype), to_mpi_op(op), to_mpi_win(win->client_win)); 
    7171  } 
    7272 
     
    7575                         int target_count, MPI_Datatype target_datatype, MPI_Op op, MPI_Win win, MPI_Request *request) 
    7676  { 
    77     int target_mpi_rank   = win.comm.rank_map->at(target_rank).second; 
    78     int target_local_rank = win.comm.rank_map->at(target_rank).first; 
    79     int num_ep = win.comm.ep_comm_ptr->size_rank_info[1].second; 
     77    int target_mpi_rank   = win->comm->rank_map->at(target_rank).second; 
     78    int target_local_rank = win->comm->rank_map->at(target_rank).first; 
     79    int num_ep = win->comm->ep_comm_ptr->size_rank_info[1].second; 
    8080    ::MPI_Request mpi_request; 
    8181    if(num_ep==1) 
    8282    { 
    8383      int return_value = ::MPI_Rget_accumulate(origin_addr, origin_count, to_mpi_type(origin_datatype), result_addr, result_count, to_mpi_type(result_datatype), target_mpi_rank, to_mpi_aint(target_disp), target_count, 
    84                                       to_mpi_type(target_datatype), to_mpi_op(op), to_mpi_win(win.server_win[target_local_rank]), &mpi_request); 
    85       request->mpi_request = new ::MPI_Request(mpi_request); 
     84                                      to_mpi_type(target_datatype), to_mpi_op(op), to_mpi_win(win->server_win[target_local_rank]), &mpi_request); 
     85      (*request)->mpi_request = new ::MPI_Request(mpi_request); 
    8686 
    87       request->ep_datatype = origin_datatype; 
    88       request->type = 1; 
     87      (*request)->ep_datatype = origin_datatype; 
     88      (*request)->type = 1; 
    8989      return return_value; 
    9090    } 
     
    9292    { 
    9393      int return_value = ::MPI_Rget_accumulate(origin_addr, origin_count, to_mpi_type(origin_datatype), result_addr, result_count, to_mpi_type(result_datatype), target_mpi_rank, to_mpi_aint(target_disp), target_count, 
    94                                       to_mpi_type(target_datatype), to_mpi_op(op), to_mpi_win(win.client_win), &mpi_request); 
    95       request->mpi_request = new ::MPI_Request(mpi_request); 
     94                                      to_mpi_type(target_datatype), to_mpi_op(op), to_mpi_win(win->client_win), &mpi_request); 
     95      (*request)->mpi_request = new ::MPI_Request(mpi_request); 
    9696 
    97       request->ep_datatype = origin_datatype; 
    98       request->type = 1; 
     97      (*request)->ep_datatype = origin_datatype; 
     98      (*request)->type = 1; 
    9999      return return_value; 
    100100    } 
Note: See TracChangeset for help on using the changeset viewer.