Skip to Content.
Sympa Menu

cgal-discuss - [cgal-discuss] CGAl Volume

Subject: CGAL users discussion list

List archive

[cgal-discuss] CGAl Volume


Chronological Thread 
  • From: Julia Fischer <>
  • To:
  • Subject: [cgal-discuss] CGAl Volume
  • Date: Wed, 2 Mar 2016 23:02:09 +0100
  • Authentication-results: mail2-smtp-roc.national.inria.fr; spf=None ; spf=Pass ; spf=None
  • Ironport-phdr: 9a23:e3dQAR/tE2V1xf9uRHKM819IXTAuvvDOBiVQ1KB91uocTK2v8tzYMVDF4r011RmSDdqdtKgP0reM+4nbGkU+or+5+EgYd5JNUxJXwe43pCcHRPC/NEvgMfTxZDY7FskRHHVs/nW8LFQHUJ2mPw6anHS+4HYoFwnlMkItf6KuStGU0J78jr3os7ToICx2xxOFKYtoKxu3qQiD/uI3uqBFbpgL9x3Sv3FTcP5Xz247bXianhL7+9vitMU7q3cY6Lod8JtLXqz+Oqg5VrdFFy8OMmYv5cStuwOQYxGI4y4+T2EXm1JmAhPO7BzgFsPzry/7v6xgxCTcM8ztRrA5Qxyt6q5qTFnjjyJRZG1xy33elsEl1PETmxmmvREqm4M=

#include <stdio.h>
#include <mpi.h>
#include <stdlib.h>

#define NUM_ELEMENT 10

int main(int argc, char** argv)
{
   int i, id, num_procs, len; 
   char name[MPI_MAX_PROCESSOR_NAME];
   MPI_Win win;

   MPI_Init(&argc, &argv);
   MPI_Comm_rank(MPI_COMM_WORLD, &id);
   MPI_Comm_size(MPI_COMM_WORLD, &num_procs);
   MPI_Get_processor_name(name, &len);


   printf("Rank %d running on %s\n", id, name);
   int sizeWin=0;
   int *sharedbuffer;
   int *localbuffer;
   if (id==0){
      sizeWin=100;
      sharedbuffer=(int*)malloc(sizeof(int) * sizeWin );
  
   }
   else{
      sizeWin=0;
      sharedbuffer=(int*)malloc(sizeof(int) * sizeWin ); 
      localbuffer =(int*)malloc(sizeof(int) * NUM_ELEMENT );    
   }
  
   
  
   MPI_Win_create(sharedbuffer, sizeWin, sizeof(int), MPI_INFO_NULL, MPI_COMM_WORLD, &win);

   if(id==0){
        for (i = 0; i < NUM_ELEMENT; i++)
       {
          sharedbuffer[i] = 10*id + i;
          localbuffer[i] = 0;
       }
       printf("Rank %d sets data in the shared memory:", id);
          for (i = 0; i < NUM_ELEMENT; i++)
           printf(" %02d", sharedbuffer[i]);

       printf("\n");
    
  
   }


  


   MPI_Win_fence(0, win);
 

   if (id != 0)
       sleep(1);
      //MPI_Get(&localbuffer[0], NUM_ELEMENT, MPI_INT, id-1, 0, NUM_ELEMENT, MPI_INT, win);
   else
      MPI_Get(&localbuffer[0], NUM_ELEMENT, MPI_INT, num_procs-1, 0, NUM_ELEMENT, MPI_INT, win);

   MPI_Win_fence(0, win);

   printf("Rank %d gets data from the shared memory:", id);

   for (i = 0; i < NUM_ELEMENT; i++)
      printf(" %02d", localbuffer[i]);

     
   printf("\n");
 
 
 
   MPI_Win_free(&win);
   MPI_Finalize();
   return 0;
}




  • [cgal-discuss] CGAl Volume, Julia Fischer, 03/02/2016

Archive powered by MHonArc 2.6.18.

Top of Page