Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
dsend used for small messages
[simgrid.git] / src / surf / network.c
index c8649e1..8c0b232 100644 (file)
@@ -103,40 +103,61 @@ static double constant_bandwidth_constraint(double rate, double bound,
   return rate;
 }
 
-/**********************/
-/*   SMPI callbacks   */
-/**********************/
-static double smpi_latency_factor(double size)
+/**
+ *------------------ <copy/paste C code snippet in surf/network.c> ----------------------
+ *
+ * produced by: ./calibrate_piecewise.py griffon_skampi_pt2pt.ski.dat 2 2.4e-5 1.25e8 1536 65536
+ *
+ *---------------------------------------------------------------------------------------
+ **/
+static double smpi_bandwidth_factor(double size)
 {
-  /* 1 B <= size <= 1 KiB */
-  if (size <= 1024.0) {
-    return 1.0056;
-  }
-
-  /* 2 KiB <= size <= 32 KiB */
-  if (size <= 32768.0) {
-    return 1.8805;
-  }
-
-  /* 64 KiB <= size <= 4 MiB */
-  return 22.7111;
+        /* case 0.0 KiB <= size <= 1.5 KiB */
+        if (1 <=  size && size <= 1536) 
+               return(0.193137361131);
+        /* case 2.0 KiB <= size <= 64.0 KiB */
+        if (2048 <=  size && size <= 65536) 
+               return(0.584680317461);
+        /* case 65.0 KiB <= size */
+        if (66560 <=  size) 
+               return(0.933246215769);
+
+        /* ..:: inter-segment corrections ::.. */
+
+        /* case 1.5 KiB < size < 2.0 KiB */
+        if (1536 <  size && size < 2048) 
+               return(0.765607476636);
+        /* case 64.0 KiB < size < 65.0 KiB */
+        if (65536 <  size && size < 66560) 
+               return(1.24121212121);
 }
 
-static double smpi_bandwidth_factor(double size)
+static double smpi_latency_factor(double size)
 {
-  /* 1 B <= size <= 1 KiB */
-  if (size <= 1024.0) {
-    return 0.2758;
-  }
+        /* case 0.0 KiB <= size <= 1.5 KiB */
+        if (1 <=  size && size <= 1536) 
+               return(1.15019564848);
+        /* case 2.0 KiB <= size <= 64.0 KiB */
+        if (2048 <=  size && size <= 65536) 
+               return(1.80598448863);
+        /* case 65.0 KiB <= size <= 8192.0 KiB */
+        if (66560 <=  size) 
+               return(14.6187359323);
+
+        /* ..:: inter-segment corrections ::.. */
+
+        /* case 1.5 KiB < size < 2.0 KiB */
+        if (1536 <  size && size < 2048) 
+               return(2.1375);
+        /* case 64.0 KiB < size < 65.0 KiB */
+        if (65536 <  size && size < 66560) 
+               return(14.6375);
+}
 
-  /* 2 KiB <= size <= 32 KiB */
-  if (size <= 32768.0) {
-    return 0.5477;
-  }
+/**
+ *------------------ </copy/paste C code snippet in surf/network.c> ---------------------
+ **/
 
-  /* 64 KiB <= size <= 4 MiB */
-  return 0.9359;
-}
 
 static double smpi_bandwidth_constraint(double rate, double bound,
                                         double size)