X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/49e85177c669d793e84242983a1b1f430e47184e..611d822b02f836d7abe031cced6adc4281ef4356:/examples/smpi/energy/f90/sef90.f90?ds=sidebyside diff --git a/examples/smpi/energy/f90/sef90.f90 b/examples/smpi/energy/f90/sef90.f90 index f1db81a943..639ddd4678 100644 --- a/examples/smpi/energy/f90/sef90.f90 +++ b/examples/smpi/energy/f90/sef90.f90 @@ -1,4 +1,4 @@ -! Copyright (c) 2013-2014. The SimGrid Team. +! Copyright (c) 2013-2018. The SimGrid Team. ! All rights reserved. ! This program is free software; you can redistribute it and/or modify it @@ -13,32 +13,52 @@ 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() t = MPI_Wtime() - print *, '[', t, '] [rank ', rank, ']', pstates, 'pstates available' + print '(1a,F15.8,1a,i2,1a,i2,1a)', '[', t, '] [rank ', rank, '] ',& + pstates, ' pstates available' do i = 0, pstates - 1 p = smpi_get_host_power_peak_at(i) - print *, '[', t, '] [rank ', rank, '] Power: ', p + print '(1a,F15.8,1a,i2,1a,F15.4)', '[', t, '] [rank ', rank, & + '] Power: ', p end do do i = 0, pstates - 1 - call smpi_set_host_power_peak_at(i) + call smpi_set_host_pstate(i) t = MPI_Wtime() p = smpi_get_host_current_power_peak() - print *, '[', t, '] [rank ', rank, '] Current pstate: ', i, '; Current power: ', p + print '(1a,F15.8,1a,i2,1a,i2,1a,F15.4)', '[', t, '] [rank ', & + rank, '] Current pstate: ', i, '; Current power: ', p e = 1e9 call smpi_execute_flops(e) t = MPI_Wtime() e = smpi_get_host_consumed_energy() - print *, '[', t, '] [rank ', rank, '] Energy consumed (Joules): ', e + print '(1a,F15.8,1a,i2,1a,F15.4)', '[', t, '] [rank ', & + rank, '] Energy consumed (Joules): ', e end do + flush(6) + 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