Cluster Lab Session 04(Examples)
Cluster Lab Session 04(Examples)
Bcast.c
#include<mpi.h>
#include<stdio.h>
#include<stdlib.h>
int rank;
int data=0;
MPI_Init(NULL,NULL);
MPI_Comm_rank(MPI_COMM_WORLD,&rank);
if(rank==0)
{
data=10;
}
MPI_Bcast(&data,1,MPI_INT,0,MPI_COMM_WORLD);
MPI_Finalize();
return 0;
}
--------------------------------------
scatter.c
#include<mpi.h>
#include<stdio.h>
#include<stdlib.h>
int main(int argc, char **argv[])
{
int rank;
int data=0;
int *buf=NULL;
MPI_Init(NULL,NULL);
MPI_Comm_rank(MPI_COMM_WORLD,&rank);
if(rank==0)
{
int arr[10]={1,2,3,4,5,6,7,8,9,10};
buf=arr;
}
MPI_Scatter(buf,1,MPI_INT,&data,1,MPI_INT,0,MPI_COMM_WORLD);
MPI_Finalize();
return 0;
}
_______________________________
gather.c
#include<mpi.h>
#include<stdio.h>
#include<stdlib.h>
int myrank,csize,localx;
int arr[4];
MPI_Init(NULL,NULL);
MPI_Comm_rank(MPI_COMM_WORLD,&myrank);
MPI_Comm_size(MPI_COMM_WORLD,&csize);
localx=myrank*2;
MPI_Gather(&localx,1,MPI_INT,arr,1,MPI_INT,0,MPI_COMM_WORLD);
if(myrank==0)
for(int i=0;i<4;i++)
printf("%d",arr[i]);
MPI_Finalize();
return 0;