From: Marion Guthmuller Date: Tue, 24 Feb 2015 16:18:16 +0000 (+0100) Subject: model-checker : new files forgotten X-Git-Tag: v3_12~750 X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/commitdiff_plain/ec38bc5664db40ada68448c162478e0d20189fa0?ds=sidebyside model-checker : new files forgotten --- diff --git a/examples/smpi/mc/hostfile_non_termination b/examples/smpi/mc/hostfile_non_termination new file mode 100644 index 0000000000..ae28a97e07 --- /dev/null +++ b/examples/smpi/mc/hostfile_non_termination @@ -0,0 +1,2 @@ +node-1.acme.org +node-2.acme.org \ No newline at end of file diff --git a/examples/smpi/mc/non_termination1.c b/examples/smpi/mc/non_termination1.c new file mode 100644 index 0000000000..1d9c497db4 --- /dev/null +++ b/examples/smpi/mc/non_termination1.c @@ -0,0 +1,37 @@ +#include +#include +#include + +int x = 5; +int y = 8; + +int main(int argc, char **argv) { + + int recv_buff, 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 (1) { + MPI_Recv(&recv_buff, 1, MPI_INT, MPI_ANY_SOURCE, MPI_ANY_TAG, MPI_COMM_WORLD, &status); + } + } else { + while (1) { + int old_x = x; + x = -y; + y = old_x; + printf("x = %d, y = %d\n", x, y); + MPI_Send(&rank, 1, MPI_INT, 0, 42, MPI_COMM_WORLD); + } + } + + MPI_Finalize(); + + return 0; +} diff --git a/examples/smpi/mc/non_termination2.c b/examples/smpi/mc/non_termination2.c new file mode 100644 index 0000000000..a23435ecdb --- /dev/null +++ b/examples/smpi/mc/non_termination2.c @@ -0,0 +1,33 @@ +#include +#include +#include + +int x; + +int main(int argc, char **argv) { + + int recv_buff, 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 (1) { + MPI_Recv(&recv_buff, 1, MPI_INT, MPI_ANY_SOURCE, MPI_ANY_TAG, MPI_COMM_WORLD, &status); + } + } else { + while (1) { + x = 2; + MPI_Send(&rank, 1, MPI_INT, 0, 42, MPI_COMM_WORLD); + } + } + + MPI_Finalize(); + + return 0; +} diff --git a/examples/smpi/mc/non_termination3.c b/examples/smpi/mc/non_termination3.c new file mode 100644 index 0000000000..aecd34dd70 --- /dev/null +++ b/examples/smpi/mc/non_termination3.c @@ -0,0 +1,38 @@ +#include +#include +#include + +int x = 0; +int y = 0; + +int main(int argc, char **argv) { + + int recv_x, recv_y, 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 (x<5) { + MPI_Recv(&recv_x, 1, MPI_INT, MPI_ANY_SOURCE, MPI_ANY_TAG, MPI_COMM_WORLD, &status); + MPI_Recv(&recv_y, 1, MPI_INT, MPI_ANY_SOURCE, MPI_ANY_TAG, MPI_COMM_WORLD, &status); + } + } else { + while (x<5) { + int old_x = x; + x = old_x - y; + MPI_Send(&x, 1, MPI_INT, 0, 42, MPI_COMM_WORLD); + y = old_x + y; + MPI_Send(&y, 1, MPI_INT, 0, 42, MPI_COMM_WORLD); + } + } + + MPI_Finalize(); + + return 0; +} 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; +}