Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
[DVFS] Fix load calculation for Dvfs governors
authorChristian Heinrich <franz-christian.heinrich@inria.fr>
Wed, 7 Feb 2018 12:54:21 +0000 (13:54 +0100)
committerChristian Heinrich <franz-christian.heinrich@inria.fr>
Tue, 13 Feb 2018 18:53:16 +0000 (19:53 +0100)
The HostLoad plugin computes the load as <cores used>/<cores total>.
This means that governors sometimes decide to slow down even though
one or several cores were used because too many cores were unused.

src/surf/plugins/host_dvfs.cpp

index 985d0d8..1d7336a 100644 (file)
@@ -81,7 +81,8 @@ public:
   {
     double load = sg_host_get_current_load(host);
 
-    if (load > freq_up_threshold) {
+    // FIXME I don't like that we multiply with the getCoreCount() just here...
+    if (load*host->getCoreCount() > freq_up_threshold) {
       host->setPstate(0); /* Run at max. performance! */
       XBT_INFO("Changed to pstate %f", 0.0);
     } else {
@@ -109,7 +110,7 @@ public:
 
   void update()
   {
-    double load = sg_host_get_current_load(host);
+    double load = sg_host_get_current_load(host)*host->getCoreCount();
     int pstate  = host->getPstate();
 
     if (load > freq_up_threshold) {