Ignore:
Timestamp:
12/19/17 17:50:40 (3 years ago)
Author:
yushan
Message:

dev EP-RMA : MPI_Get_accumulate

File:
1 edited

Legend:

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

    r1384 r1385  
    682682 
    683683    MPI_Win ep_win; 
    684     MPI_Aint buf_size(1); 
     684    MPI_Aint buf_size=1; 
    685685    int buf = rank; 
    686686    int local_buf = rank; 
     687    int result_buf = -1; 
    687688    MPI_Win_create(&buf, buf_size, sizeof(int), info, comm, &ep_win); 
    688689    MPI_Barrier(comm); 
     
    699700    { 
    700701      local_buf = 99; 
    701       MPI_Aint displs(0); 
     702      MPI_Aint displs=0; 
    702703      MPI_Put(&local_buf, 1, MPI_INT, size-1, displs, 1, MPI_INT, ep_win); 
    703704    } 
     
    711712    MPI_Win_fence(0, ep_win); 
    712713 
    713     if(rank == 0) 
    714     { 
    715       MPI_Aint displs(0); 
    716       MPI_Accumulate(&local_buf, 1, MPI_INT, size-1, displs, 1, MPI_INT, MPI_SUM, ep_win); 
     714    if(rank == 1) 
     715    { 
     716      MPI_Aint displs=0; 
     717      MPI_Accumulate(&local_buf, 1, MPI_INT, size-1, displs, 1, MPI_INT, MPI_REPLACE, ep_win); 
    717718    } 
    718719 
     
    722723    MPI_Win_fence(0, ep_win); 
    723724 
     725    if(rank == 2) 
     726    { 
     727      MPI_Aint displs = 0; 
     728      MPI_Get_accumulate(&local_buf, 1, MPI_INT, &result_buf,  
     729                         1, MPI_INT, size-2, displs, 
     730                         1, MPI_INT, MPI_SUM, ep_win); 
     731    } 
     732 
    724733     
    725734    MPI_Win_free(&ep_win); 
    726     printf("rank = %d, buf = %d, local_buf = %d\n", rank, buf, local_buf); 
     735    printf("rank = %d, buf = %d, local_buf = %d, result_buf = %d\n", rank, buf, local_buf, result_buf); 
    727736     
    728737    MPI_Comm_free(&comm); 
Note: See TracChangeset for help on using the changeset viewer.