Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <mpi.h>
- #include <stdlib.h>
- #include <string.h>
- #define N 100
- #define M 100000
- main(int argc, char **argv)
- {
- int my_rank;
- int p;
- int source;
- int dest;
- int tag=50;
- char message[100];
- MPI_Status status;
- MPI_Init(&argc, &argv);
- MPI_Comm_rank(MPI_COMM_WORLD, &my_rank);
- MPI_Comm_size(MPI_COMM_WORLD, &p);
- double t1, t2;
- float tab[N];
- float tab2[M];
- int i;
- int j;
- for(i=0; i<N; i++)
- {
- tab[i]=i;
- }
- for(j=0; j<M; j++)
- {
- tab2[j]=j;
- }
- for (i=0; i<4; i++)
- {
- if (my_rank == 0)
- {
- //source = 1;
- //dest = 1;
- t1=MPI_Wtime();
- MPI_Gather(tab, N, MPI_FLOAT, tab2, M, MPI_FLOAT, 0, MPI_COMM_WORLD);
- //MPI_Send(tab, N, MPI_FLOAT, dest, tag, MPI_COMM_WORLD);
- //MPI_Recv(tab, N, MPI_FLOAT, source, tag, MPI_COMM_WORLD, &status);
- t2=MPI_Wtime();
- printf("Czas = %f\n", t2-t1);
- }
- else
- {
- //source = 0;
- //dest = 0;
- //sprintf(message, "Hello from process %d.", my_rank);
- MPI_Gather(tab, N, MPI_FLOAT, tab2, M, MPI_FLOAT, 0, MPI_COMM_WORLD);
- //MPI_Recv(tab, N, MPI_FLOAT, source, tag, MPI_COMM_WORLD, &status);
- //MPI_Send(tab, N, MPI_FLOAT, dest, tag, MPI_COMM_WORLD);
- }
- }
- MPI_Finalize();
- }
Add Comment
Please, Sign In to add comment