Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
[SMPI] Deprecate functions in smpi_dvfs.cpp #278
[simgrid.git] / examples / smpi / energy / energy.c
index be95ba9..f8ca6dc 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (c) 2013-2015. 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
@@ -9,16 +9,16 @@
 #include <mpi.h>
 #include <smpi/smpi.h>
 
+#include <simgrid/plugins/energy.h>
+#include <simgrid/simix.h>
+
 int main(int argc, char *argv[])
 {
-  int rank, pstates;
+  int rank;
   int i;
   char buf[1024];
-  char *s;
-  size_t sz, x;
-  int err;
 
-  err = MPI_Init(&argc, &argv);
+  int err = MPI_Init(&argc, &argv);
   if (err != MPI_SUCCESS) {
     fprintf(stderr, "MPI_init failed: %d\n", err);
     exit(EXIT_FAILURE);
@@ -31,20 +31,20 @@ int main(int argc, char *argv[])
     exit(EXIT_FAILURE);
   }
 
-  pstates = smpi_get_host_nb_pstates();
+  int pstates = sg_host_get_nb_pstates(sg_host_self());
 
-  s = buf;
-  sz = sizeof buf;
-  x = snprintf(s, sz,
+  char *s = buf;
+  size_t sz = sizeof buf;
+  size_t x = snprintf(s, sz,
                "[%.6f] [rank %d] Pstates: %d; Powers: %.0f",
-               MPI_Wtime(), rank, pstates, smpi_get_host_power_peak_at(0));
+               MPI_Wtime(), rank, pstates, sg_host_get_pstate_speed(sg_host_self(), 0));
   if (x < sz) {
     s += x;
     sz -= x;
   } else
     sz = 0;
   for (i = 1; i < pstates; i++) {
-    x = snprintf(s, sz, ", %.0f", smpi_get_host_power_peak_at(i));
+    x = snprintf(s, sz, ", %.0f", sg_host_get_pstate_speed(sg_host_self(), i));
     if (x < sz) {
       s += x;
       sz -= x;
@@ -54,16 +54,16 @@ int main(int argc, char *argv[])
   fprintf(stderr, "%s%s\n", buf, (sz ? "" : " [...]"));
 
   for (i = 0; i < pstates; i++) {
-    smpi_set_host_pstate(i);
+    sg_host_set_pstate(sg_host_self(), i);
     fprintf(stderr, "[%.6f] [rank %d] Current pstate: %d; Current power: %.0f\n",
-            MPI_Wtime(), rank, i, smpi_get_host_current_power_peak());
+            MPI_Wtime(), rank, i, sg_host_speed(sg_host_self()));
 
     SMPI_SAMPLE_FLOPS(1e9) {
       /* imagine here some code running for 1e9 flops... */
     }
 
     fprintf(stderr, "[%.6f] [rank %d] Energy consumed: %g Joules.\n",
-            MPI_Wtime(), rank, smpi_get_host_consumed_energy());
+            MPI_Wtime(), rank,  sg_host_get_consumed_energy(sg_host_self()));
   }
 
   err = MPI_Finalize();