X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/d8710e879515b185393e2fa3a53d7377853cd25c..ec38bc5664db40ada68448c162478e0d20189fa0:/examples/smpi/mc/non_termination4.c diff --git a/examples/smpi/mc/non_termination4.c b/examples/smpi/mc/non_termination4.c new file mode 100644 index 0000000000..4e03da5acd --- /dev/null +++ b/examples/smpi/mc/non_termination4.c @@ -0,0 +1,39 @@ +#include +#include +#include + +int x = 20; + +int main(int argc, char **argv) { + + int recv_x, size, rank; + MPI_Status status; + + MPI_Init(&argc, &argv); + + MPI_Comm_size(MPI_COMM_WORLD, &size); /* Get nr of tasks */ + MPI_Comm_rank(MPI_COMM_WORLD, &rank); /* Get id of this process */ + + MC_ignore(&(status.count), sizeof(status.count)); + + if(rank==0){ + while (recv_x>=0) { + MPI_Recv(&recv_x, 1, MPI_INT, MPI_ANY_SOURCE, MPI_ANY_TAG, MPI_COMM_WORLD, &status); + } + }else{ + + while (x >= 0) { + if (MC_random(0,1) == 0) { + x -= 1; + } else { + x += 1; + } + printf("x=%d\n", x); + MPI_Send(&x, 1, MPI_INT, 0, 42, MPI_COMM_WORLD); + } + } + + MPI_Finalize(); + + return 0; +}