Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Cleanups and cosmetics
[simgrid.git] / testsuite / surf / simeng_usage.c
index 4f8942b..9ac1673 100644 (file)
@@ -13,6 +13,7 @@
 
 #include "xbt/sysdep.h"
 #include "surf/maxmin.h"
+#include "surf/maxmin_private.h"
 
 #include "xbt/log.h"
 #include "xbt/module.h"
@@ -31,7 +32,8 @@ XBT_LOG_NEW_DEFAULT_CATEGORY(surf_test,"Messages specific for surf example");
 typedef enum {
   MAXMIN,
   SDP,
-  LAGRANGE
+  LAGRANGE_RENO,
+  LAGRANGE_VEGAS,
 } method_t;
 
 void test1(method_t method);
@@ -47,6 +49,15 @@ void test1(method_t method)
   lmm_variable_t R_2 = NULL;
   lmm_variable_t R_3 = NULL;
 
+  if(method==LAGRANGE_VEGAS){
+    //set default functions for TCP Vegas
+    lmm_set_default_protocol_function(func_vegas_fpi);
+  }else if(method==LAGRANGE_RENO){
+    //set default functions for TCP Reno
+    lmm_set_default_protocol_function(func_reno_fpi);
+  }
+
+
   Sys = lmm_system_new();
   L1 = lmm_constraint_new(Sys, (void *) "L1", 1.0);
   L2 = lmm_constraint_new(Sys, (void *) "L2", 10.0);
@@ -57,6 +68,12 @@ void test1(method_t method)
   R_2 = lmm_variable_new(Sys, (void *) "R 2", 1.0 , -1.0 , 1);
   R_3 = lmm_variable_new(Sys, (void *) "R 3", 1.0 , -1.0 , 1);
 
+  lmm_update_variable_latency(Sys, R_1_2_3, 1.0);
+  lmm_update_variable_latency(Sys,R_1, 1.0);
+  lmm_update_variable_latency(Sys,R_2, 1.0); 
+  lmm_update_variable_latency(Sys,R_3, 1.0);
+
+
   lmm_expand(Sys, L1, R_1_2_3, 1.0);
   lmm_expand(Sys, L2, R_1_2_3, 1.0);
   lmm_expand(Sys, L3, R_1_2_3, 1.0);
@@ -67,36 +84,27 @@ void test1(method_t method)
 
   lmm_expand(Sys, L3, R_3, 1.0);
 
-  PRINT_VAR(R_1_2_3);
-  PRINT_VAR(R_1);
-  PRINT_VAR(R_2);
-  PRINT_VAR(R_3);
 
-  DEBUG0("\n");
-  if(method==MAXMIN)
+  if(method==MAXMIN){
     lmm_solve(Sys);
 #ifdef HAVE_SDP
-  else if(method==SDP)
+  }else if(method==SDP){
     sdp_solve(Sys);    
 #endif
-  else if(method==LAGRANGE)
+  }else if(method==LAGRANGE_VEGAS){
+    //set default functions for TCP Vegas
     lagrange_solve(Sys);  
-  else 
+  }else if(method==LAGRANGE_RENO){
+    //set default functions for TCP Reno
+    lagrange_solve(Sys);  
+  }else{ 
     xbt_assert0(0,"Invalid method");
+  }
 
   PRINT_VAR(R_1_2_3);
   PRINT_VAR(R_1);
   PRINT_VAR(R_2);
   PRINT_VAR(R_3);
-/*   DEBUG0("\n"); */
-
-/*   lmm_update_variable_weight(Sys,R_1_2_3,.5); */
-/*   lmm_solve(Sys); */
-
-/*   PRINT_VAR(R_1_2_3); */
-/*   PRINT_VAR(R_1); */
-/*   PRINT_VAR(R_2); */
-/*   PRINT_VAR(R_3); */
 
   lmm_system_free(Sys);
 } 
@@ -111,6 +119,15 @@ void test2(method_t method)
   lmm_variable_t T1 = NULL;
   lmm_variable_t T2 = NULL;
 
+
+  if(method==LAGRANGE_VEGAS){
+    //set default functions for TCP Vegas
+    lmm_set_default_protocol_function(func_vegas_fpi);
+  }else if(method==LAGRANGE_RENO){
+    //set default functions for TCP Reno
+    lmm_set_default_protocol_function(func_reno_fpi);
+  }
+
   Sys = lmm_system_new();
   CPU1 = lmm_constraint_new(Sys, (void *) "CPU1", 200.0);
   CPU2 = lmm_constraint_new(Sys, (void *) "CPU2", 100.0);
@@ -118,23 +135,30 @@ void test2(method_t method)
   T1 = lmm_variable_new(Sys, (void *) "T1", 1.0 , -1.0 , 1);
   T2 = lmm_variable_new(Sys, (void *) "T2", 1.0 , -1.0 , 1);
 
+  lmm_update_variable_latency(Sys, T1, 1.0);
+  lmm_update_variable_latency(Sys, T2, 1.0);
+
+
   lmm_expand(Sys, CPU1, T1, 1.0);
   lmm_expand(Sys, CPU2, T2, 1.0);
 
-  PRINT_VAR(T1);
-  PRINT_VAR(T2);
 
-  DEBUG0("\n");
-  if(method==MAXMIN)
+
+  if(method==MAXMIN){
     lmm_solve(Sys);
 #ifdef HAVE_SDP
-  else if(method==SDP)
+  }else if(method==SDP){
     sdp_solve(Sys);    
 #endif
-  else if(method==LAGRANGE)
+  }else if(method==LAGRANGE_VEGAS){
+    //set default functions for TCP Vegas
+    lagrange_solve(Sys);  
+  }else if(method==LAGRANGE_RENO){
+    //set default functions for TCP Reno
     lagrange_solve(Sys);  
-  else 
+  }else{ 
     xbt_assert0(0,"Invalid method");
+  }
 
   PRINT_VAR(T1);
   PRINT_VAR(T2);
@@ -159,11 +183,12 @@ void test3(method_t method)
   lmm_system_t Sys = NULL ;
   lmm_constraint_t *tmp_cnst = NULL;
   lmm_variable_t   *tmp_var  = NULL;
-  char tmp_name[13];
+  char **tmp_name;
 
 
   /*array to add the the constraints of fictiv variables */
   double B[15] = {10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
+
                1, 1, 1, 1, 1};
 
   A = (double **)calloc(links+5, sizeof(double));
@@ -250,16 +275,30 @@ void test3(method_t method)
   A[14][15] = 1.0;
 
 
+  if(method==LAGRANGE_VEGAS){
+    //set default functions for TCP Vegas
+    lmm_set_default_protocol_function(func_vegas_fpi);
+  }else if(method==LAGRANGE_RENO){
+    //set default functions for TCP Reno
+    lmm_set_default_protocol_function(func_reno_fpi);
+  }
+
   Sys = lmm_system_new();
   
+
+
+  tmp_name = (char **) calloc(31, sizeof(char *));
+  for(i=0; i<31; i++){
+    tmp_name[i] = (char *) calloc(10, sizeof(char));
+  }
   
   /*
    * Creates the constraints
    */
   tmp_cnst = calloc(15, sizeof(lmm_constraint_t));
   for(i=0; i<15; i++){
-    sprintf(tmp_name, "C_%03d", i); 
-    tmp_cnst[i] = lmm_constraint_new(Sys, (void *) tmp_name, B[i]);
+    sprintf(tmp_name[i], "C_%03d", i); 
+    tmp_cnst[i] = lmm_constraint_new(Sys, (void *) tmp_name[i], B[i]);
   }
 
 
@@ -268,8 +307,9 @@ void test3(method_t method)
    */
   tmp_var = calloc(16, sizeof(lmm_variable_t));
   for(j=0; j<16; j++){
-    sprintf(tmp_name, "X_%03d", j); 
-    tmp_var[j] = lmm_variable_new(Sys, (void *) tmp_name, 1.0, -1.0 , 15);
+    sprintf(tmp_name[i+j], "X_%03d", j); 
+    tmp_var[j] = lmm_variable_new(Sys, (void *) tmp_name[i+j], 1.0, -1.0 , 15);
+    lmm_update_variable_latency(Sys, tmp_var[j], 1.0);
   }
 
   /*
@@ -283,20 +323,23 @@ void test3(method_t method)
     }
   }
 
-  for(j=0; j<16; j++){
-    PRINT_VAR(tmp_var[j]);
-  }
 
-  if(method==MAXMIN)
+
+  if(method==MAXMIN){
     lmm_solve(Sys);
 #ifdef HAVE_SDP
-  else if(method==SDP)
+  }else if(method==SDP){
     sdp_solve(Sys);    
 #endif
-  else if(method==LAGRANGE)
+  }else if(method==LAGRANGE_VEGAS){
+    //set default functions for TCP Vegas
+    lagrange_solve(Sys);  
+  }else if(method==LAGRANGE_RENO){
+    //set default functions for TCP Reno
     lagrange_solve(Sys);  
-  else 
+  }else{ 
     xbt_assert0(0,"Invalid method");
+  }
 
   for(j=0; j<16; j++){
     PRINT_VAR(tmp_var[j]);
@@ -304,6 +347,7 @@ void test3(method_t method)
 
   free(tmp_var);
   free(tmp_cnst);
+  free(tmp_name);
   lmm_system_free(Sys);
 }
 
@@ -315,36 +359,63 @@ int main(int argc, char **argv)
 {
   xbt_init(&argc,argv);
 
-/*   DEBUG0("***** Test 1 (Max-Min) ***** \n"); */
-/*   test1(MAXMIN); */
-/* #ifdef HAVE_SDP */
-/*   DEBUG0("***** Test 1 (SDP) ***** \n"); */
-/*   test1(SDP); */
-/* #endif */
-/*   DEBUG0("***** Test 1 (Lagrange - dicotomi) ***** \n"); */
-/*   test1(LAGRANGE); */
 
+  DEBUG0("**************************** \n");
+  DEBUG0("*****                  ***** \n");
+  DEBUG0("*****      TEST 1      ***** \n");
+  DEBUG0("*****                  ***** \n");
+  DEBUG0("**************************** \n");
 
-/*   DEBUG0("***** Test 2 (Max-Min) ***** \n"); */
-/*   test2(MAXMIN); */
-/* #ifdef HAVE_SDP */
-/*   DEBUG0("***** Test 2 (SDP) ***** \n"); */
-/*   test2(SDP); */
-/* #endif */
-/*   DEBUG0("***** Test 2 (Lagrange) ***** \n"); */
-/*   test2(LAGRANGE); */
+
+  DEBUG0("***** Test 1 (Max-Min) ***** \n");
+  test1(MAXMIN);
+#ifdef HAVE_SDP
+  DEBUG0("***** Test 1 (SDP) ***** \n");
+  test1(SDP);
+#endif
+  DEBUG0("***** Test 1 (Lagrange - Vegas) ***** \n");
+  test1(LAGRANGE_VEGAS);
+  DEBUG0("***** Test 1 (Lagrange - Reno) ***** \n");
+  test1(LAGRANGE_RENO);
+
+
+  DEBUG0("**************************** \n");
+  DEBUG0("*****                  ***** \n");
+  DEBUG0("*****      TEST 2      ***** \n");
+  DEBUG0("*****                  ***** \n");
+  DEBUG0("**************************** \n");
+
+
+  DEBUG0("***** Test 2 (Max-Min) ***** \n");
+  test2(MAXMIN);
+#ifdef HAVE_SDP
+  DEBUG0("***** Test 2 (SDP) ***** \n");
+  test2(SDP);
+#endif
+  DEBUG0("***** Test 2 (Lagrange - Vegas) ***** \n");
+  test2(LAGRANGE_VEGAS);
+  DEBUG0("***** Test 2 (Lagrange - Reno) ***** \n");
+  test2(LAGRANGE_RENO);
 
 
 
-/*   DEBUG0("***** Test 3 (Max-Min) ***** \n"); */
-/*   test3(MAXMIN); */
+  DEBUG0("**************************** \n");
+  DEBUG0("*****                  ***** \n");
+  DEBUG0("*****      TEST 3      ***** \n");
+  DEBUG0("*****                  ***** \n");
+  DEBUG0("**************************** \n");
+
+
+  DEBUG0("***** Test 3 (Max-Min) ***** \n");
+  test3(MAXMIN);
 #ifdef HAVE_SDP
   DEBUG0("***** Test 3 (SDP) ***** \n");
   test3(SDP);
 #endif
-  DEBUG0("***** Test 3 (Lagrange) ***** \n");
-  test3(LAGRANGE);
-
+  DEBUG0("***** Test 3 (Lagrange - Vegas) ***** \n");
+  test3(LAGRANGE_VEGAS);
+  DEBUG0("***** Test 3 (Lagrange - Reno) ***** \n");
+  test3(LAGRANGE_RENO);
 
   return 0;
 }