]> AND Private Git Repository - loba.git/commitdiff
Logo AND Algorithmique Numérique Distribuée

Private GIT Repository
Merge branch 'master' of ssh://info.iut-bm.univ-fcomte.fr/loba
authorcouturie <couturie@carcariass.(none)>
Thu, 8 Sep 2011 20:47:46 +0000 (22:47 +0200)
committercouturie <couturie@carcariass.(none)>
Thu, 8 Sep 2011 20:47:46 +0000 (22:47 +0200)
deployment.cpp
loba_bulk.cpp
loba_lln.cpp
main.cpp
messages.cpp
process.cpp
statistics.h

index 264224cb0cea2f83d4ab8ab831f217ae626f5831..f34c3a93e36803b7b2ee0c930cfd1deb5c88ee4c 100644 (file)
@@ -70,16 +70,17 @@ void deployment_generator::distribute_load()
         unsigned i;
         for (i = 0 ; i < hosts.size() - 1; ++i) {
             if (residue < 0.0)
-                iload = floor(loads[i]);
+                iload = std::floor(loads[i]);
             else if (residue > 0.0)
-                iload = ceil(loads[i]);
+                iload = std::ceil(loads[i]);
             else // residue == 0.0
-                iload = round(loads[i]);
+                iload = std::round(loads[i]);
             residue += (loads[i] - iload);
             loads[i] = iload;
         }
         // abs(round(...)) to avoid rounding errors, or a value of -0
-        iload = abs(round(loads[i] + residue)); // i == hosts.size() - 1
+        // Note: i == hosts.size() - 1
+        iload = std::abs(std::round(loads[i] + residue));
         loads[i] = iload;
         // final sanity check
         xbt_assert(opt::auto_depl::load ==
@@ -181,7 +182,7 @@ void deployment_torus::generate()
             b = c;
     }
     unsigned width = b;
-    // here width == ceil(sqrt(size))
+    // here width == std::ceil(std::sqrt(size))
 
     unsigned first_on_last_line = (size() - 1) - (size() - 1) % width;
     XBT_DEBUG("torus size = %zu ; width = %u ; height = %zu ; foll = %u",
index 0821edaf030975eb4fbb90ebf6cc318a4eeb49b7..de9c0998cb266e421ba9a08f6d169e637385ea05 100644 (file)
@@ -7,81 +7,88 @@ XBT_LOG_EXTERNAL_DEFAULT_CATEGORY(loba);
 
 void loba_bulk::load_balance()
 {
-       float myLoad = get_load();
+    float myLoad = get_load();
 
-       unsigned NbNwMinLoad = 0;
-       unsigned NbNwLowerLoad = 0;
-       unsigned NbNeighbours = pneigh.size();
+    unsigned NbNwMinLoad = 0;
+    unsigned NbNwLowerLoad = 0;
+    unsigned NbNeighbours = pneigh.size();
 
-       double *S = new double[NbNeighbours];
-       for (unsigned i = 0; i < NbNeighbours; i++)
-               S[i] = 0.0;
-       //What is the minimum and maximum load under myLoad?
-       float minLoad = myLoad;
-       for (unsigned i = 0; i < NbNeighbours; i++) {
-               if (pneigh[i]->get_load() < minLoad) {
-                       minLoad = pneigh[i]->get_load();
-               }
-               if (pneigh[i]->get_load() < myLoad) {
-                       NbNwLowerLoad++;
-               }
-       }
-       for (unsigned i = 0; i < NbNeighbours; i++)
-               if (pneigh[i]->get_load() == minLoad)
-                       NbNwMinLoad++;
+    double *S = new double[NbNeighbours];
+    for (unsigned i = 0; i < NbNeighbours; i++)
+        S[i] = 0.0;
 
-       float maxLoad = minLoad;
-       for (unsigned i = 0; i < NbNeighbours; i++) {
-               if (pneigh[i]->get_load() > minLoad && pneigh[i]->get_load() < myLoad)
-                       if (maxLoad < pneigh[i]->get_load())
-                               maxLoad = pneigh[i]->get_load();
-       }
+    // What is the minimum and maximum load under myLoad?
+    float minLoad = myLoad;
+    for (unsigned i = 0; i < NbNeighbours; i++) {
+        if (pneigh[i]->get_load() < minLoad) {
+            minLoad = pneigh[i]->get_load();
+        }
+        if (pneigh[i]->get_load() < myLoad) {
+            NbNwLowerLoad++;
+        }
+    }
+    for (unsigned i = 0; i < NbNeighbours; i++)
+        if (pneigh[i]->get_load() == minLoad)
+            NbNwMinLoad++;
+
+    float maxLoad = minLoad;
+    for (unsigned i = 0; i < NbNeighbours; i++) {
+        if (pneigh[i]->get_load() > minLoad && pneigh[i]->get_load() < myLoad)
+            if (maxLoad < pneigh[i]->get_load())
+                maxLoad = pneigh[i]->get_load();
+    }
 
-       double alpha = 0.0;
+    double alpha = 0.0;
 
-       if (NbNwLowerLoad && NbNwMinLoad < NbNwLowerLoad) //There is one or many neighbors with minimum load but not all neighbors have minimum load
-               alpha = (1. / ((double) NbNwMinLoad + 2));
-       if (NbNwMinLoad == NbNwLowerLoad) //All neighbors have minimum load
-               alpha = (1. / ((double) NbNwMinLoad + 1));
-       float myS = 0.;
-       //There exist underloaded neighbors
-       if (NbNwMinLoad && myLoad != 0.0) {
-               for (unsigned i = 0; i < NbNeighbours; i++) {
-                       if (pneigh[i]->get_load() == minLoad) {
-                               S[i] = floor(alpha * (myLoad - minLoad));
-                               myS +=  S[i];
-                       } else {
-                               if (pneigh[i]->get_load() < myLoad) {
-                                       S[i] = floor(alpha * (myLoad - pneigh[i]->get_load()));
-                                       myS +=  S[i];
-                               }
-                       }
-               }
-               //Check assumption 4.2 (b) page 520
-               bool HaveToCorrectS = false;
-               for (unsigned i = 0; i < NbNeighbours; i++) {
-                       if (pneigh[i]->get_load() < myLoad) { //
-                               //Condition 4.6
-                               if ((myLoad - myS) < (pneigh[i]->get_load() + S[i])) {
-                                       HaveToCorrectS = true;
-                               }
-                       }
-               }
-               if (HaveToCorrectS) {
-                               for (unsigned i = 0; i < NbNeighbours; i++) {
-                                       while (((myLoad - myS) < pneigh[i]->get_load() + S[i]) && (S[i] > 0)) {
-                                               myS -= 1.0;
-                                               S[i] -= 1.0;
-                                       }
-                               }
-               }
-       }//End there are underloaded neighbors;
-       for (unsigned i = 0 ; i < NbNeighbours ; i++) {
-                send(pneigh[i], S[i]);
-                XBT_DEBUG("sent to %s", pneigh[i]->get_name());
+    if (NbNwLowerLoad && NbNwMinLoad < NbNwLowerLoad) {
+        // There is one or many neighbors with minimum load but not
+        // all neighbors have minimum load
+        alpha = (1. / ((double) NbNwMinLoad + 2));
+    }
+    if (NbNwMinLoad == NbNwLowerLoad) {
+        // All neighbors have minimum load
+        alpha = (1. / ((double) NbNwMinLoad + 1));
+    }
+    float myS = 0.;
+    // There exist underloaded neighbors
+    if (NbNwMinLoad && myLoad != 0.0) {
+        for (unsigned i = 0; i < NbNeighbours; i++) {
+            if (pneigh[i]->get_load() == minLoad) {
+                S[i] = std::floor(alpha * (myLoad - minLoad));
+                myS += S[i];
+            } else {
+                if (pneigh[i]->get_load() < myLoad) {
+                    S[i] = std::floor(alpha * (myLoad - pneigh[i]->get_load()));
+                    myS += S[i];
+                }
+            }
+        }
+        // Check assumption 4.2 (b) page 520
+        bool HaveToCorrectS = false;
+        for (unsigned i = 0; i < NbNeighbours; i++) {
+            if (pneigh[i]->get_load() < myLoad) {
+                // Condition 4.6
+                if ((myLoad - myS) < (pneigh[i]->get_load() + S[i])) {
+                    HaveToCorrectS = true;
+                }
+            }
+        }
+        if (HaveToCorrectS) {
+            for (unsigned i = 0; i < NbNeighbours; i++) {
+                while (((myLoad - myS) < pneigh[i]->get_load() + S[i])
+                       && (S[i] > 0)) {
+                    myS -= 1.0;
+                    S[i] -= 1.0;
+                }
+            }
         }
+    } // End there are underloaded neighbors;
+    for (unsigned i = 0; i < NbNeighbours; i++) {
+        send(pneigh[i], S[i]);
+        XBT_DEBUG("sent to %s", pneigh[i]->get_name());
+    }
 
-       delete[] S;
+    delete[] S;
 }
 
 // Local variables:
index 35acb265cd1fb325d9dd453b167eea237e0d0875..0422b38ff5a082e7cd38b1c247a8870b720712a6 100644 (file)
@@ -7,32 +7,34 @@ XBT_LOG_EXTERNAL_DEFAULT_CATEGORY(loba);
 
 void loba_lln::load_balance()
 {
-       std::vector<int>  listLessLoadedNeighbors;
-       unsigned i;
-       double myLoad = get_load();
-       unsigned size = pneigh.size();
-       double *S = new double[size];
-       double lessLoad = get_load();
+    std::vector<int> listLessLoadedNeighbors;
+    unsigned i;
+    double myLoad = get_load();
+    unsigned size = pneigh.size();
+    double *S = new double[size];
+    double lessLoad = get_load();
 
-       listLessLoadedNeighbors.clear();
-               for(i=0;i<size;++i) {
-                       S[i]=0.0;
-                       if( pneigh[i]->get_load()< lessLoad )
-                                       listLessLoadedNeighbors.push_back(i);
-               }
-               int nbLessLoadedNeighbors=listLessLoadedNeighbors.size();
-               for( i=0; i<listLessLoadedNeighbors.size(); ++i) {
-                       double delta = (myLoad-pneigh[listLessLoadedNeighbors[i]]->get_load())/(nbLessLoadedNeighbors+1);
-                       if(myLoad-delta > pneigh[listLessLoadedNeighbors[i]]->get_load()) {
-                               S[i]=delta;
-                               myLoad-=delta;
-                       }
-               }
-               for(i=0; i<size; ++i) {
-                       send(pneigh[i], S[i]);
-                       XBT_DEBUG("sent to %s", pneigh[i]->get_name());
-               }
-       delete[] S;
+    listLessLoadedNeighbors.clear();
+    for (i = 0; i < size; ++i) {
+        S[i] = 0.0;
+        if (pneigh[i]->get_load() < lessLoad)
+            listLessLoadedNeighbors.push_back(i);
+    }
+    int nbLessLoadedNeighbors = listLessLoadedNeighbors.size();
+    for (i = 0; i < listLessLoadedNeighbors.size(); ++i) {
+        double delta =
+            (myLoad - pneigh[listLessLoadedNeighbors[i]]->get_load()) /
+            (nbLessLoadedNeighbors + 1);
+        if (myLoad - delta > pneigh[listLessLoadedNeighbors[i]]->get_load()) {
+            S[i] = delta;
+            myLoad -= delta;
+        }
+    }
+    for (i = 0; i < size; ++i) {
+        send(pneigh[i], S[i]);
+        XBT_DEBUG("sent to %s", pneigh[i]->get_name());
+    }
+    delete[] S;
 }
 
 // Local variables:
index 71eefb9980270024995025ac24454f57476fa3ea..478d1e870fec04d34ae80e461275d400e8aa0e46 100644 (file)
--- a/main.cpp
+++ b/main.cpp
@@ -252,7 +252,7 @@ int main(int argc, char* argv[])
             } else if (opt::auto_depl::load < 0.0)
                 opt::auto_depl::load =
                     -opt::auto_depl::load * opt::auto_depl::nhosts;
-            double iload = trunc(opt::auto_depl::load);
+            double iload = std::trunc(opt::auto_depl::load);
             if (opt::integer_transfer && opt::auto_depl::load != iload) {
                 XBT_WARN("Total load %g is not an integer.  Truncate it.",
                          opt::auto_depl::load);
index c542596543ddd71ecd3280cb66560ff7c416744d..2d5de949b0ddd72a05d2661ae81b0234018bdde7 100644 (file)
@@ -36,7 +36,7 @@ std::string message::to_string()
             oss << "; " << credit << " (credit)";
         break;
     case DATA:
-       oss << "DATA: " << amount << " (load)";
+        oss << "DATA: " << amount << " (load)";
         break;
     case CTRL_CLOSE:
         oss << "CTRL_CLOSE";
index 04c08c0a57bcb4771475c4f1849997c0b9c3ec22..0f7380c8c4802a7cecf5f7498deb3deaa32c0863 100644 (file)
@@ -37,7 +37,7 @@ process::process(int argc, char* argv[])
     if (argc < 2 || !(std::istringstream(argv[1]) >> real_load))
         throw std::invalid_argument("bad or missing initial load parameter");
 
-    double iload = trunc(real_load);
+    double iload = std::trunc(real_load);
     if (opt::integer_transfer && real_load != iload) {
         XBT_WARN("Initial load %g is not an integer.  Truncate it.",
                  real_load);
index 7e3fb2ead86d5b70f48430a6d662710c3b44bd9c..28aa91390a5bcf3cdc587d06a962728e9a32bf55 100644 (file)
@@ -25,7 +25,7 @@ public:
     double get_sum() const      { return sum;                  }
     double get_mean() const     { return mean;                 }
     double get_variance() const { return sqdiff_sum / count;   }
-    double get_stddev() const   { return sqrt(get_variance()); }
+    double get_stddev() const   { return std::sqrt(get_variance()); }
 
 private:
     int count;