From f60fc94d76d2d26a2b62650c4e923824169349a4 Mon Sep 17 00:00:00 2001 From: Arnaud Giersch Date: Mon, 17 Mar 2014 09:49:24 +0100 Subject: [PATCH 1/1] Add proper error checking. --- examples/smpi/energy/f77/sef.f | 14 ++++++++++++++ examples/smpi/energy/f90/sef90.f90 | 14 ++++++++++++++ examples/smpi/energy/se.c | 22 ++++++++++++++++++---- 3 files changed, 46 insertions(+), 4 deletions(-) diff --git a/examples/smpi/energy/f77/sef.f b/examples/smpi/energy/f77/sef.f index 51a6ea277a..a4c464448e 100644 --- a/examples/smpi/energy/f77/sef.f +++ b/examples/smpi/energy/f77/sef.f @@ -13,7 +13,16 @@ 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) + 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() @@ -44,5 +53,10 @@ 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 diff --git a/examples/smpi/energy/f90/sef90.f90 b/examples/smpi/energy/f90/sef90.f90 index f1db81a943..833bf731c2 100644 --- a/examples/smpi/energy/f90/sef90.f90 +++ b/examples/smpi/energy/f90/sef90.f90 @@ -13,7 +13,16 @@ program main 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) + 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() @@ -40,5 +49,10 @@ program main 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 diff --git a/examples/smpi/energy/se.c b/examples/smpi/energy/se.c index ba969e56ee..2c4571a89a 100644 --- a/examples/smpi/energy/se.c +++ b/examples/smpi/energy/se.c @@ -16,13 +16,20 @@ int main(int argc, char *argv[]) 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); } - 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(); @@ -59,5 +66,12 @@ int main(int argc, char *argv[]) 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; } -- 2.20.1