Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- [gauss:31436] *** Process received signal ***
- [gauss:31436] Signal: Segmentation fault (11)
- [gauss:31436] Signal code: Invalid permissions (2)
- [gauss:31436] Failing at address: 0x400960
- [gauss:31436] [ 0] /lib64/libpthread.so.0(+0xf370)[0x2aaaaafae370]
- [gauss:31436] [ 1] /cm/shared/apps/openmpi/gcc/64/1.10.3/lib64/openmpi/mca_pml_ob1.so(mca_pml_ob1_recv+0xc9)[0x2aaab0e38349]
- [gauss:31436] [ 2] /cm/shared/apps/openmpi/gcc/64/1.10.3/lib64/libmpi.so.12(MPI_Recv+0x13c)[0x2aaaaad337bc]
- [gauss:31436] [ 3] lab2[0x400b21]
- [gauss:31436] [ 4] /lib64/libc.so.6(__libc_start_main+0xf5)[0x2aaaab1dcb35]
- [gauss:31436] [ 5] lab2[0x400989]
- [gauss:31436] *** End of error message ***
- #include <stdio.h>
- #include <string.h>
- #include <mpi.h>
- int main(int argc, char* argv[])
- {
- int my_rank;
- int msgtag = 0;
- int x;
- int my_rank_n = 0;
- int sum_rank;
- int p;
- MPI_Status *status;
- MPI_Init(&argc, &argv);
- MPI_Comm_rank(MPI_COMM_WORLD, &my_rank);
- MPI_Comm_size(MPI_COMM_WORLD, &p);
- for (int i = 0; i < p; i++)
- {
- if (my_rank == 0)
- {
- x = 10;
- MPI_Send(&x, 1, MPI_INT, 1, msgtag, MPI_COMM_WORLD);
- }
- else if (my_rank == 1)
- {
- MPI_Recv(&x, 1, MPI_INT, 0, msgtag, MPI_COMM_WORLD, status);
- }
- MPI_Bcast(&x, 1, MPI_INT, msgtag, MPI_COMM_WORLD);
- }
- if(my_rank == 2)
- {
- printf("X is %dn",x);
- }
- for (int i = 0; i < p; i++)
- {
- my_rank_n = my_rank;
- MPI_Reduce(&my_rank_n, &sum_rank, 1, MPI_INT, MPI_SUM, 0, MPI_COMM_WORLD);
- }
- if(my_rank == 0)
- {
- printf("Sum of Rank is %dn", sum_rank);
- }
- MPI_Finalize();
- return 0;
- }
Add Comment
Please, Sign In to add comment