-/* Copyright (c) 2013-2015. The SimGrid Team.
+/* Copyright (c) 2013-2019. The SimGrid Team.
* All rights reserved. */
/* This program is free software; you can redistribute it and/or modify it
/******************************************************************************/
/* Run :
- /usr/bin/time -f "clock:%e user:%U sys:%S swapped:%W exitval:%x max:%Mk" "$@" ../../../smpi_script/bin/smpirun -hostfile hostfile_bugged1_liveness -platform ../../platforms/cluster.xml --cfg=model-check:1 --cfg=contexts/factory:ucontext --cfg=model-check/reduction:none --cfg=model-check/property:promela_bugged1_liveness --cfg=smpi/send_is_detached_thres:0 --cfg=contexts/stack_size:128 --cfg=model-check/visited:100000 --cfg=model-check/max_depth:100000 ./bugged1_liveness */
+ /usr/bin/time -f "clock:%e user:%U sys:%S swapped:%W exitval:%x max:%Mk" "$@" \
+ ../../../smpi_script/bin/smpirun -hostfile hostfile_bugged1_liveness -platform ../../platforms/cluster_backbone.xml \
+ --cfg=contexts/factory:ucontext --cfg=model-check/reduction:none \
+ --cfg=model-check/property:promela_bugged1_liveness --cfg=smpi/send-is-detached-thresh:0 \
+ --cfg=contexts/stack-size:128 --cfg=model-check/visited:100000 --cfg=model-check/max-depth:100000 ./bugged1_liveness
+*/
#include <stdio.h>
#include <mpi.h>
#define REQUEST_TAG 1
#define RELEASE_TAG 2
-int r, cs;
+int r;
+int cs;
int main(int argc, char **argv){
-
- int err, size, rank;
+ int size;
+ int rank;
int recv_buff;
MPI_Status status;
- int CS_used = 0;
xbt_dynar_t requests = xbt_dynar_new(sizeof(int), NULL);
-
+
/* Initialize MPI */
- err = MPI_Init(&argc, &argv);
+ int err = MPI_Init(&argc, &argv);
if(err != MPI_SUCCESS){
printf("MPI initialization failed !\n");
exit(1);
MPI_Comm_rank(MPI_COMM_WORLD, &rank);
if(rank == 0){ /* Coordinator */
+ int CS_used = 0;
while(1){
MPI_Recv(&recv_buff, 1, MPI_INT, MPI_ANY_SOURCE, MPI_ANY_TAG, MPI_COMM_WORLD, &status);
if(status.MPI_TAG == REQUEST_TAG){