Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Add proper error checking.
authorArnaud Giersch <arnaud.giersch@iut-bm.univ-fcomte.fr>
Mon, 17 Mar 2014 08:49:24 +0000 (09:49 +0100)
committerArnaud Giersch <arnaud.giersch@iut-bm.univ-fcomte.fr>
Mon, 17 Mar 2014 09:41:04 +0000 (10:41 +0100)
examples/smpi/energy/f77/sef.f
examples/smpi/energy/f90/sef90.f90
examples/smpi/energy/se.c

index 51a6ea2..a4c4644 100644 (file)
       double precision p, t, e
 
       call MPI_Init(ierr)
       double precision p, t, e
 
       call MPI_Init(ierr)
+      if (ierr .ne. MPI_SUCCESS) then
+         print *, 'MPI_Init failed:', ierr
+         stop 1
+      endif
       call MPI_Comm_rank(MPI_COMM_WORLD, rank, ierr)
       call MPI_Comm_rank(MPI_COMM_WORLD, rank, ierr)
+      if (ierr .ne. MPI_SUCCESS) then
+         print *, 'MPI_Comm_rank failed:', ierr
+         call MPI_Abort(MPI_COMM_WORLD, 1, ierr)
+         stop 1
+      endif
 
       pstates = smpi_get_host_nb_pstates()
 
 
       pstates = smpi_get_host_nb_pstates()
 
       end do
 
       call MPI_Finalize(ierr)
       end do
 
       call MPI_Finalize(ierr)
+      if (ierr .ne. MPI_SUCCESS) then
+         print *, 'MPI_Finalize failed:', ierr
+         call MPI_Abort(MPI_COMM_WORLD, 1, ierr)
+         stop 1
+      endif
 
       end program main
 
       end program main
index f1db81a..833bf73 100644 (file)
@@ -13,7 +13,16 @@ program main
   double precision p, t, e
 
   call MPI_Init(ierr)
   double precision p, t, e
 
   call MPI_Init(ierr)
+  if (ierr .ne. MPI_SUCCESS) then
+     print *, 'MPI_Init failed:', ierr
+     stop 1
+  endif
   call MPI_Comm_rank(MPI_COMM_WORLD, rank, ierr)
   call MPI_Comm_rank(MPI_COMM_WORLD, rank, ierr)
+  if (ierr .ne. MPI_SUCCESS) then
+     print *, 'MPI_Comm_rank failed:', ierr
+     call MPI_Abort(MPI_COMM_WORLD, 1, ierr)
+     stop 1
+  endif
 
   pstates = smpi_get_host_nb_pstates()
 
 
   pstates = smpi_get_host_nb_pstates()
 
@@ -40,5 +49,10 @@ program main
   end do
 
   call MPI_Finalize(ierr)
   end do
 
   call MPI_Finalize(ierr)
+  if (ierr .ne. MPI_SUCCESS) then
+     print *, 'MPI_Finalize failed:', ierr
+     call MPI_Abort(MPI_COMM_WORLD, 1, ierr)
+     stop 1
+  endif
 
 end program main
 
 end program main
index ba969e5..2c4571a 100644 (file)
@@ -16,13 +16,20 @@ int main(int argc, char *argv[])
   char buf[1024];
   char *s;
   size_t sz, x;
   char buf[1024];
   char *s;
   size_t sz, x;
+  int err;
 
 
-  if (MPI_Init(&argc, &argv) != MPI_SUCCESS) {
-    fprintf(stderr, "MPI initialization failed!\n");
+  err = MPI_Init(&argc, &argv);
+  if (err != MPI_SUCCESS) {
+    fprintf(stderr, "MPI_init failed: %d\n", err);
     exit(EXIT_FAILURE);
   }
 
     exit(EXIT_FAILURE);
   }
 
-  MPI_Comm_rank(MPI_COMM_WORLD, &rank);   /* Get id of this process */
+  err = MPI_Comm_rank(MPI_COMM_WORLD, &rank);   /* Get id of this process */
+  if (err != MPI_SUCCESS) {
+    fprintf(stderr, "MPI_Comm_rank failed: %d", err);
+    MPI_Abort(MPI_COMM_WORLD, EXIT_FAILURE);
+    exit(EXIT_FAILURE);
+  }
 
   pstates = smpi_get_host_nb_pstates();
 
 
   pstates = smpi_get_host_nb_pstates();
 
@@ -59,5 +66,12 @@ int main(int argc, char *argv[])
             MPI_Wtime(), rank, smpi_get_host_consumed_energy());
   }
 
             MPI_Wtime(), rank, smpi_get_host_consumed_energy());
   }
 
-  return MPI_Finalize();
+  err = MPI_Finalize();
+  if (err != MPI_SUCCESS) {
+    fprintf(stderr, "MPI_Finalize failed: %d\n", err);
+    MPI_Abort(MPI_COMM_WORLD, EXIT_FAILURE);
+    exit(EXIT_FAILURE);
+  }
+
+  return EXIT_SUCCESS;
 }
 }