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_scan.cpp

    r1381 r1500  
    5050    valid_op(op); 
    5151 
    52     int ep_rank_loc = comm.ep_comm_ptr->size_rank_info[1].first; 
    53     int num_ep = comm.ep_comm_ptr->size_rank_info[1].second; 
    54     int mpi_rank = comm.ep_comm_ptr->size_rank_info[2].first; 
     52    int ep_rank_loc = comm->ep_comm_ptr->size_rank_info[1].first; 
     53    int num_ep = comm->ep_comm_ptr->size_rank_info[1].second; 
     54    int mpi_rank = comm->ep_comm_ptr->size_rank_info[2].first; 
    5555     
    5656 
     
    184184      } 
    185185 
    186       comm.my_buffer->void_buffer[0] = recvbuf; 
     186      comm->my_buffer->void_buffer[0] = recvbuf; 
    187187    } 
    188188    else 
    189189    { 
    190       comm.my_buffer->void_buffer[ep_rank_loc] = const_cast<void*>(sendbuf);   
     190      comm->my_buffer->void_buffer[ep_rank_loc] = const_cast<void*>(sendbuf);   
    191191      memcpy(recvbuf, sendbuf, datasize*count); 
    192192    }  
     
    196196    MPI_Barrier_local(comm); 
    197197 
    198     memcpy(recvbuf, comm.my_buffer->void_buffer[0], datasize*count); 
     198    memcpy(recvbuf, comm->my_buffer->void_buffer[0], datasize*count); 
    199199 
    200200 
     
    205205        assert (datasize == sizeof(int)); 
    206206        for(int i=1; i<ep_rank_loc+1; i++) 
    207           reduce_sum<int>(static_cast<int*>(comm.my_buffer->void_buffer[i]), static_cast<int*>(recvbuf), count);     
     207          reduce_sum<int>(static_cast<int*>(comm->my_buffer->void_buffer[i]), static_cast<int*>(recvbuf), count);     
    208208      } 
    209209      
     
    212212        assert(datasize == sizeof(float)); 
    213213        for(int i=1; i<ep_rank_loc+1; i++) 
    214           reduce_sum<float>(static_cast<float*>(comm.my_buffer->void_buffer[i]), static_cast<float*>(recvbuf), count);     
     214          reduce_sum<float>(static_cast<float*>(comm->my_buffer->void_buffer[i]), static_cast<float*>(recvbuf), count);     
    215215      } 
    216216       
     
    220220        assert(datasize == sizeof(double)); 
    221221        for(int i=1; i<ep_rank_loc+1; i++) 
    222           reduce_sum<double>(static_cast<double*>(comm.my_buffer->void_buffer[i]), static_cast<double*>(recvbuf), count); 
     222          reduce_sum<double>(static_cast<double*>(comm->my_buffer->void_buffer[i]), static_cast<double*>(recvbuf), count); 
    223223      } 
    224224 
     
    227227        assert(datasize == sizeof(char)); 
    228228        for(int i=1; i<ep_rank_loc+1; i++) 
    229           reduce_sum<char>(static_cast<char*>(comm.my_buffer->void_buffer[i]), static_cast<char*>(recvbuf), count); 
     229          reduce_sum<char>(static_cast<char*>(comm->my_buffer->void_buffer[i]), static_cast<char*>(recvbuf), count); 
    230230      } 
    231231 
     
    234234        assert(datasize == sizeof(long)); 
    235235        for(int i=1; i<ep_rank_loc+1; i++) 
    236           reduce_sum<long>(static_cast<long*>(comm.my_buffer->void_buffer[i]), static_cast<long*>(recvbuf), count); 
     236          reduce_sum<long>(static_cast<long*>(comm->my_buffer->void_buffer[i]), static_cast<long*>(recvbuf), count); 
    237237      } 
    238238 
     
    241241        assert(datasize == sizeof(unsigned long)); 
    242242        for(int i=1; i<ep_rank_loc+1; i++) 
    243           reduce_sum<unsigned long>(static_cast<unsigned long*>(comm.my_buffer->void_buffer[i]), static_cast<unsigned long*>(recvbuf), count);     
     243          reduce_sum<unsigned long>(static_cast<unsigned long*>(comm->my_buffer->void_buffer[i]), static_cast<unsigned long*>(recvbuf), count);     
    244244      } 
    245245 
     
    255255        assert(datasize == sizeof(int)); 
    256256        for(int i=1; i<ep_rank_loc+1; i++) 
    257           reduce_max<int>(static_cast<int*>(comm.my_buffer->void_buffer[i]), static_cast<int*>(recvbuf), count);     
     257          reduce_max<int>(static_cast<int*>(comm->my_buffer->void_buffer[i]), static_cast<int*>(recvbuf), count);     
    258258      } 
    259259 
     
    262262        assert(datasize == sizeof(float)); 
    263263        for(int i=1; i<ep_rank_loc+1; i++) 
    264           reduce_max<float>(static_cast<float*>(comm.my_buffer->void_buffer[i]), static_cast<float*>(recvbuf), count);     
     264          reduce_max<float>(static_cast<float*>(comm->my_buffer->void_buffer[i]), static_cast<float*>(recvbuf), count);     
    265265      } 
    266266 
     
    269269        assert(datasize == sizeof(double)); 
    270270        for(int i=1; i<ep_rank_loc+1; i++) 
    271           reduce_max<double>(static_cast<double*>(comm.my_buffer->void_buffer[i]), static_cast<double*>(recvbuf), count); 
     271          reduce_max<double>(static_cast<double*>(comm->my_buffer->void_buffer[i]), static_cast<double*>(recvbuf), count); 
    272272      } 
    273273 
     
    276276        assert(datasize == sizeof(char)); 
    277277        for(int i=1; i<ep_rank_loc+1; i++) 
    278           reduce_max<char>(static_cast<char*>(comm.my_buffer->void_buffer[i]), static_cast<char*>(recvbuf), count); 
     278          reduce_max<char>(static_cast<char*>(comm->my_buffer->void_buffer[i]), static_cast<char*>(recvbuf), count); 
    279279      } 
    280280 
     
    283283        assert(datasize == sizeof(long)); 
    284284        for(int i=1; i<ep_rank_loc+1; i++) 
    285           reduce_max<long>(static_cast<long*>(comm.my_buffer->void_buffer[i]), static_cast<long*>(recvbuf), count); 
     285          reduce_max<long>(static_cast<long*>(comm->my_buffer->void_buffer[i]), static_cast<long*>(recvbuf), count); 
    286286      } 
    287287 
     
    290290        assert(datasize == sizeof(unsigned long)); 
    291291        for(int i=1; i<ep_rank_loc+1; i++) 
    292           reduce_max<unsigned long>(static_cast<unsigned long*>(comm.my_buffer->void_buffer[i]), static_cast<unsigned long*>(recvbuf), count);     
     292          reduce_max<unsigned long>(static_cast<unsigned long*>(comm->my_buffer->void_buffer[i]), static_cast<unsigned long*>(recvbuf), count);     
    293293      } 
    294294      
     
    302302        assert(datasize == sizeof(int)); 
    303303        for(int i=1; i<ep_rank_loc+1; i++) 
    304           reduce_min<int>(static_cast<int*>(comm.my_buffer->void_buffer[i]), static_cast<int*>(recvbuf), count);     
     304          reduce_min<int>(static_cast<int*>(comm->my_buffer->void_buffer[i]), static_cast<int*>(recvbuf), count);     
    305305      } 
    306306 
     
    309309        assert(datasize == sizeof(float)); 
    310310        for(int i=1; i<ep_rank_loc+1; i++) 
    311           reduce_min<float>(static_cast<float*>(comm.my_buffer->void_buffer[i]), static_cast<float*>(recvbuf), count);     
     311          reduce_min<float>(static_cast<float*>(comm->my_buffer->void_buffer[i]), static_cast<float*>(recvbuf), count);     
    312312      } 
    313313 
     
    316316        assert(datasize == sizeof(double)); 
    317317        for(int i=1; i<ep_rank_loc+1; i++) 
    318           reduce_min<double>(static_cast<double*>(comm.my_buffer->void_buffer[i]), static_cast<double*>(recvbuf), count); 
     318          reduce_min<double>(static_cast<double*>(comm->my_buffer->void_buffer[i]), static_cast<double*>(recvbuf), count); 
    319319      } 
    320320 
     
    323323        assert(datasize == sizeof(char)); 
    324324        for(int i=1; i<ep_rank_loc+1; i++) 
    325           reduce_min<char>(static_cast<char*>(comm.my_buffer->void_buffer[i]), static_cast<char*>(recvbuf), count); 
     325          reduce_min<char>(static_cast<char*>(comm->my_buffer->void_buffer[i]), static_cast<char*>(recvbuf), count); 
    326326      } 
    327327 
     
    330330        assert(datasize == sizeof(long)); 
    331331        for(int i=1; i<ep_rank_loc+1; i++) 
    332           reduce_min<long>(static_cast<long*>(comm.my_buffer->void_buffer[i]), static_cast<long*>(recvbuf), count); 
     332          reduce_min<long>(static_cast<long*>(comm->my_buffer->void_buffer[i]), static_cast<long*>(recvbuf), count); 
    333333      } 
    334334 
     
    337337        assert(datasize == sizeof(unsigned long)); 
    338338        for(int i=1; i<ep_rank_loc+1; i++) 
    339           reduce_min<unsigned long>(static_cast<unsigned long*>(comm.my_buffer->void_buffer[i]), static_cast<unsigned long*>(recvbuf), count);     
     339          reduce_min<unsigned long>(static_cast<unsigned long*>(comm->my_buffer->void_buffer[i]), static_cast<unsigned long*>(recvbuf), count);     
    340340      } 
    341341 
     
    350350  int MPI_Scan(const void *sendbuf, void *recvbuf, int count, MPI_Datatype datatype, MPI_Op op, MPI_Comm comm) 
    351351  { 
    352     if(!comm.is_ep) 
    353     { 
    354       return ::MPI_Scan(sendbuf, recvbuf, count, to_mpi_type(datatype), to_mpi_op(op), to_mpi_comm(comm.mpi_comm)); 
     352    if(!comm->is_ep) 
     353    { 
     354      return ::MPI_Scan(sendbuf, recvbuf, count, to_mpi_type(datatype), to_mpi_op(op), to_mpi_comm(comm->mpi_comm)); 
    355355    } 
    356356     
    357357    valid_type(datatype); 
    358358 
    359     int ep_rank = comm.ep_comm_ptr->size_rank_info[0].first; 
    360     int ep_rank_loc = comm.ep_comm_ptr->size_rank_info[1].first; 
    361     int mpi_rank = comm.ep_comm_ptr->size_rank_info[2].first; 
    362     int ep_size = comm.ep_comm_ptr->size_rank_info[0].second; 
    363     int num_ep = comm.ep_comm_ptr->size_rank_info[1].second; 
    364     int mpi_size = comm.ep_comm_ptr->size_rank_info[2].second; 
     359    int ep_rank = comm->ep_comm_ptr->size_rank_info[0].first; 
     360    int ep_rank_loc = comm->ep_comm_ptr->size_rank_info[1].first; 
     361    int mpi_rank = comm->ep_comm_ptr->size_rank_info[2].first; 
     362    int ep_size = comm->ep_comm_ptr->size_rank_info[0].second; 
     363    int num_ep = comm->ep_comm_ptr->size_rank_info[1].second; 
     364    int mpi_size = comm->ep_comm_ptr->size_rank_info[2].second; 
    365365 
    366366    ::MPI_Aint datasize, lb; 
     
    375375    std::vector<int> my_map(mpi_size, 0); 
    376376 
    377     for(int i=0; i<comm.rank_map->size(); i++) my_map[comm.rank_map->at(i).second]++; 
     377    for(int i=0; i<comm->rank_map->size(); i++) my_map[comm->rank_map->at(i).second]++; 
    378378 
    379379    for(int i=0; i<mpi_rank; i++) my_src += my_map[i]; 
     
    416416 
    417417    if(ep_rank_loc == 0) 
    418       ::MPI_Exscan(MPI_IN_PLACE, tmp_recvbuf, count, to_mpi_type(datatype), to_mpi_op(op), to_mpi_comm(comm.mpi_comm)); 
     418      ::MPI_Exscan(MPI_IN_PLACE, tmp_recvbuf, count, to_mpi_type(datatype), to_mpi_op(op), to_mpi_comm(comm->mpi_comm)); 
    419419 
    420420    //printf(" ID=%d : %d  %d \n", ep_rank, static_cast<int*>(tmp_recvbuf)[0], static_cast<int*>(tmp_recvbuf)[1]); 
Note: See TracChangeset for help on using the changeset viewer.